From eef74789f6487c90fe0f97cd9d8791e5c6e2791c Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Mon, 11 Sep 2023 18:59:24 +0200 Subject: [PATCH 01/20] GREmptyStatementRule is superseded in Pharo by ReMultiplePeriodsTerminatingStatementRule --- .../GREmptyStatementsRule.class/README.md | 0 .../instance/checkMethod..st | 12 ------------ .../GREmptyStatementsRule.class/instance/group.st | 3 --- .../GREmptyStatementsRule.class/instance/name.st | 3 --- .../instance/rationale.st | 3 --- .../instance/resetResult.st | 4 ---- .../GREmptyStatementsRule.class/properties.json | 11 ----------- 7 files changed, 36 deletions(-) delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/README.md delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/checkMethod..st delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/group.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/name.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/rationale.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/resetResult.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/properties.json diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/README.md b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/checkMethod..st b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/checkMethod..st deleted file mode 100644 index a2a96832..00000000 --- a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/checkMethod..st +++ /dev/null @@ -1,12 +0,0 @@ -running -checkMethod: aContext - | periods position | - aContext parseTree nodesDo: [ :node | - (node isSequence and: [ node periods notEmpty ]) ifTrue: [ - periods := OrderedCollection withAll: node periods. - 1 to: node statements size - 1 do: [ :index | - position := periods removeFirst. - ((node statements at: index) stop < position and: [ position < (node statements at: index + 1) start ]) - ifFalse: [ ^ result addClass: aContext methodClass selector: aContext selector ] ]. - (periods isEmpty or: [ periods size = 1 and: [ node statements notEmpty and: [ node statements last stop < periods first ] ] ]) - ifFalse: [ ^ result addClass: aContext methodClass selector: aContext selector ] ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/group.st b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/group.st deleted file mode 100644 index 7e52dd3b..00000000 --- a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/group.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -group - ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/name.st b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/name.st deleted file mode 100644 index 3f4db678..00000000 --- a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/name.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -name - ^ 'Empty Statements' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/rationale.st b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/rationale.st deleted file mode 100644 index 252dd280..00000000 --- a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/rationale.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -rationale - ^ 'Empty statements are not supported by most Smalltalk implementations.' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/resetResult.st b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/resetResult.st deleted file mode 100644 index 5b87472b..00000000 --- a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/instance/resetResult.st +++ /dev/null @@ -1,4 +0,0 @@ -running -resetResult - super resetResult. - result addSearchString: '..'; addSearchString: '.' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/properties.json b/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/properties.json deleted file mode 100644 index c03ba912..00000000 --- a/repository/Grease-Pharo90-Slime.package/GREmptyStatementsRule.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "", - "super" : "GRSlimeBlockLintRule", - "category" : "Grease-Pharo90-Slime", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "GREmptyStatementsRule", - "type" : "normal" -} \ No newline at end of file From 8bd356e50b3da69b5ca3ccec796fbc576ba72631 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Mon, 11 Sep 2023 19:07:12 +0200 Subject: [PATCH 02/20] Literal byte arrays are accepted in Pharo, GemStone and VAST --- .../GRUsesLiteralByteArraysRule.class/README.md | 0 .../instance/group.st | 3 --- .../instance/initialize.st | 6 ------ .../instance/name.st | 3 --- .../instance/rationale.st | 3 --- .../GRUsesLiteralByteArraysRule.class/properties.json | 11 ----------- 6 files changed, 26 deletions(-) delete mode 100644 repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/README.md delete mode 100644 repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/group.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/initialize.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/name.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/rationale.st delete mode 100644 repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/properties.json diff --git a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/README.md b/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/group.st b/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/group.st deleted file mode 100644 index 7e52dd3b..00000000 --- a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/group.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -group - ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/initialize.st b/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/initialize.st deleted file mode 100644 index c7605206..00000000 --- a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/initialize.st +++ /dev/null @@ -1,6 +0,0 @@ -initialization -initialize - super initialize. - self matcher - matches: '`#literal `{ :node | node isLiteralArray and: [ node isForByteArray ] }' - do: [ :node :answer | answer isNil ifTrue: [ node ] ifFalse: [ answer ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/name.st b/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/name.st deleted file mode 100644 index fbcd5729..00000000 --- a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/name.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -name - ^ 'Uses literal byte arrays' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/rationale.st b/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/rationale.st deleted file mode 100644 index 269ea76d..00000000 --- a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/instance/rationale.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -rationale - ^ 'Literal byte arrays are not portable accross different Smalltalk dialects.' \ No newline at end of file diff --git a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/properties.json b/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/properties.json deleted file mode 100644 index 8c5b7a18..00000000 --- a/repository/Grease-Pharo90-Slime.package/GRUsesLiteralByteArraysRule.class/properties.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commentStamp" : "", - "super" : "GRSlimeParseTreeLintRule", - "category" : "Grease-Pharo90-Slime", - "classinstvars" : [ ], - "pools" : [ ], - "classvars" : [ ], - "instvars" : [ ], - "name" : "GRUsesLiteralByteArraysRule", - "type" : "normal" -} \ No newline at end of file From 1a385fc51b21b60d841c7f071e45a9e3ab69e20c Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 14:24:51 +0100 Subject: [PATCH 03/20] First couple of Slime rules and tests converted to Reraku critiques --- .../instance/baselinePharo..st | 4 +- .../monticello.meta/categories.st | 2 +- .../GRPlatform.class/instance/version.st | 2 +- .../Grease-Pharo110-Slime.package/.filetree | 5 +++ .../README.md | 0 .../class/checksClass.st | 4 ++ .../instance/basicCheck..st | 11 ++++++ .../instance/group.st | 4 ++ .../instance/initialize.st | 8 ++++ .../instance/name.st | 4 ++ .../instance/rationale.st | 4 ++ .../properties.json | 13 +++++++ .../README.md | 0 .../instance/afterCheck.mappings..st | 15 ++++++++ .../instance/group.st | 4 ++ .../instance/initialize.st | 8 ++++ .../instance/name.st | 4 ++ .../instance/rationale.st | 4 ++ .../properties.json | 11 ++++++ .../GRReSlimeBlockLintRule.class/README.md | 0 .../properties.json | 11 ++++++ .../README.md | 0 .../properties.json | 11 ++++++ .../monticello.meta/categories.st | 1 + .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 + .../properties.json | 1 + .../.filetree | 5 +++ .../GRReSlimeTest.class/README.md | 0 .../instance/assertRule.expectedMatches..st | 4 ++ .../assertRule.expectedMatches.ignoring..st | 13 +++++++ .../GRReSlimeTest.class/instance/canParse..st | 6 +++ .../GRReSlimeTest.class/instance/category.st | 3 ++ .../instance/compile.in..st | 7 ++++ .../instance/defineClass.superclass..st | 4 ++ .../instance/defineSubClassOf..st | 20 ++++++++++ .../GRReSlimeTest.class/instance/rules.st | 7 ++++ .../instance/run.ignoring.do..st | 28 ++++++++++++++ .../GRReSlimeTest.class/instance/runCase.st | 3 ++ .../instance/runTransformation.changes..st | 15 ++++++++ .../GRReSlimeTest.class/instance/setUp.st | 6 +++ .../GRReSlimeTest.class/instance/tearDown.st | 5 +++ .../instance/testAnsiBooleansRule.st | 12 ++++++ .../instance/testAnsiCharacterRule.st | 10 +++++ .../instance/testAnsiCollectionsRule.st | 37 +++++++++++++++++++ .../instance/testAnsiConditionalsRule.st | 12 ++++++ .../instance/testAnsiConvertorRule.st | 12 ++++++ .../instance/testAnsiExceptionsRule.st | 14 +++++++ .../instance/testAnsiStreamsRule.st | 14 +++++++ .../instance/testAnsiStringsRule.st | 28 ++++++++++++++ .../instance/testBasicNewInitializeMissing.st | 9 +++++ .../instance/testBlockFormatting.st | 29 +++++++++++++++ .../instance/testDeprecatedApiProtocol.st | 11 ++++++ .../instance/testEmptyStatements.st | 13 +++++++ .../testInvalidObjectInitialization.st | 9 +++++ .../instance/testNonPortableMessageRule.st | 15 ++++++++ .../instance/testNonPortableSourceFormat.st | 10 +++++ .../testNotPortableCollectionsRule.st | 12 ++++++ .../instance/testObjectIn.st | 13 +++++++ .../instance/testParensFormatting.st | 16 ++++++++ .../instance/testReturnFormatting.st | 16 ++++++++ .../instance/testTempsFormatting.st | 20 ++++++++++ .../instance/testTestCaseFailRule.st | 10 +++++ .../instance/testUnnecessaryLastPeriodRule.st | 10 +++++ .../testUsesCanPerformOrUnderstand.st | 20 ++++++++++ .../instance/testUsesClassForHash.st | 16 ++++++++ .../instance/testUsesCurlyBraceArrays.st | 18 +++++++++ .../instance/testUsesMethodAnnotations.st | 12 ++++++ .../instance/testUsesNotPortableClass.st | 10 +++++ .../GRReSlimeTest.class/properties.json | 15 ++++++++ .../monticello.meta/categories.st | 1 + .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 + .../properties.json | 1 + 74 files changed, 680 insertions(+), 4 deletions(-) create mode 100644 repository/Grease-Pharo110-Slime.package/.filetree create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/class/checksClass.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/basicCheck..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/afterCheck.mappings..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st create mode 100644 repository/Grease-Pharo110-Slime.package/monticello.meta/initializers.st create mode 100644 repository/Grease-Pharo110-Slime.package/monticello.meta/package create mode 100644 repository/Grease-Pharo110-Slime.package/properties.json create mode 100644 repository/Grease-Tests-Pharo-Slime.package/.filetree create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/README.md create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/compile.in..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineClass.superclass..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/tearDown.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/properties.json create mode 100644 repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/monticello.meta/initializers.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/monticello.meta/package create mode 100644 repository/Grease-Tests-Pharo-Slime.package/properties.json diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st index 3b845c9a..336a93a6 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st @@ -62,8 +62,8 @@ baselinePharo: spec requires: #('Grease-Pharo100-Core'); includes: #('Grease-Tests-Pharo-Core') ]; package: 'Grease-Pharo100-Core' with: [ spec requires: #('Grease-Core') ]; - package: 'Grease-Pharo90-Slime' with: [ spec requires: #('Grease-Core') ]; - package: 'Grease-Tests-Slime' with: [ spec requires: #('Grease-Pharo90-Slime') ]. + package: 'Grease-Pharo110-Slime' with: [ spec requires: #('Grease-Core') ]; + package: 'Grease-Tests-Pharo-Slime' with: [ spec requires: #('Grease-Pharo110-Slime') ]. spec group: 'Slime' with: #('Grease-Pharo90-Slime'); diff --git a/repository/BaselineOfGrease.package/monticello.meta/categories.st b/repository/BaselineOfGrease.package/monticello.meta/categories.st index 95bd9e83..aad806f8 100644 --- a/repository/BaselineOfGrease.package/monticello.meta/categories.st +++ b/repository/BaselineOfGrease.package/monticello.meta/categories.st @@ -1 +1 @@ -self packageOrganizer ensurePackage: #BaselineOfGrease withTags: #('Manifest')! +SystemOrganization addCategory: #BaselineOfGrease! diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/version.st b/repository/Grease-Core.package/GRPlatform.class/instance/version.st index 5b503f93..c48dd9b5 100644 --- a/repository/Grease-Core.package/GRPlatform.class/instance/version.st +++ b/repository/Grease-Core.package/GRPlatform.class/instance/version.st @@ -2,5 +2,5 @@ version info version "Answer the Grease version" - ^ (GRVersion major: 1 minor: 12 revision: 2) + ^ (GRVersion major: 1 minor: 15 revision: 0) yourself \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/.filetree b/repository/Grease-Pharo110-Slime.package/.filetree new file mode 100644 index 00000000..57a67973 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/.filetree @@ -0,0 +1,5 @@ +{ + "separateMethodMetaAndSource" : false, + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/class/checksClass.st b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/class/checksClass.st new file mode 100644 index 00000000..918ec479 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/class/checksClass.st @@ -0,0 +1,4 @@ +testing - interest +checksClass + + ^ true \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/basicCheck..st b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/basicCheck..st new file mode 100644 index 00000000..7d00fbc7 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/basicCheck..st @@ -0,0 +1,11 @@ +running +basicCheck: aClass + + ^ aClass isMeta not + and: [ (aClass includesSelector: #initialize) + and: [ (#(GRObject GRNotification GRNotification GRError RBLintRule RBTransformationRule) noneSatisfy: [ :each | + aClass includesBehavior: (Smalltalk globals at: each) ]) + and: [ aClass class methodDictionary noneSatisfy: [ :each | + matcher + executeTree: each parseTree + initialAnswer: false ] ] ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/initialize.st new file mode 100644 index 00000000..f42fb7c0 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/initialize.st @@ -0,0 +1,8 @@ +initialization +initialize + + super initialize. + matcher := RBParseTreeSearcher new. + matcher + matches: 'self basicNew initialize' + do: [ :node :answer | true ] \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/name.st new file mode 100644 index 00000000..693fa6d6 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ '#basicNew initialize is missing' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/rationale.st new file mode 100644 index 00000000..22a02ade --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ '#initialize is not called implicitly when sending #new to an object in all Smalltalk dialects. Consider subclassing GRObject.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json new file mode 100644 index 00000000..67a42ffc --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json @@ -0,0 +1,13 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeBlockLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "matcher" + ], + "name" : "GRBasicNewInitializeMissingRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/afterCheck.mappings..st b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/afterCheck.mappings..st new file mode 100644 index 00000000..495d1401 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/afterCheck.mappings..st @@ -0,0 +1,15 @@ +hooks +afterCheck: aNode mappings: mappingDict + + | method | + method := aNode methodNode. + " This ensures that the description is of the form ClassName>>#selector:" + (aNode arguments first isLiteralNode + and: [ aNode arguments first value isString + and: [ method methodClass name greaseString , '>>#' , method selector greaseString ~= aNode arguments first value ] ]) ifTrue: [ ^ true ]. + + " This ensures that the description is a string and ends with a dot." + ^ (aNode arguments size > 1 + and: [ aNode arguments second isLiteralNode + and: [ aNode arguments second value isString + and: [ (aNode arguments second value endsWithSubCollection: '.') not ] ] ]) \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/group.st new file mode 100644 index 00000000..b5813499 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Formatting' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/initialize.st new file mode 100644 index 00000000..4ee4851c --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/initialize.st @@ -0,0 +1,8 @@ +initialization +initialize + + super initialize. + self + matchesAny: #( + '``@receiver greaseDeprecatedApi: ``@arg1' + '``@receiver greaseDeprecatedApi: ``@arg1 details: ``@arg2' ) \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/name.st new file mode 100644 index 00000000..554083f4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Invalid use of deprecated API protocol.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/rationale.st new file mode 100644 index 00000000..aeabf8ad --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Make sure to follow the following pattern: self greaseDeprecatedApi: ''Class>>#selector'' details: ''Some description''.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json new file mode 100644 index 00000000..87feb3c9 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeParseTreeLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRDeprecatedApiProtocolRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json new file mode 100644 index 00000000..23226a97 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "ReAbstractRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRReSlimeBlockLintRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json new file mode 100644 index 00000000..e5d01d93 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "ReNodeMatchRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRReSlimeParseTreeLintRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st b/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st new file mode 100644 index 00000000..ff4f5aed --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'Grease-Pharo110-Slime'! diff --git a/repository/Grease-Pharo110-Slime.package/monticello.meta/initializers.st b/repository/Grease-Pharo110-Slime.package/monticello.meta/initializers.st new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/monticello.meta/package b/repository/Grease-Pharo110-Slime.package/monticello.meta/package new file mode 100644 index 00000000..7cd09a28 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'Grease-Pharo110-Slime') \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/properties.json b/repository/Grease-Pharo110-Slime.package/properties.json new file mode 100644 index 00000000..6f31cf5a --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/properties.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/.filetree b/repository/Grease-Tests-Pharo-Slime.package/.filetree new file mode 100644 index 00000000..57a67973 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/.filetree @@ -0,0 +1,5 @@ +{ + "separateMethodMetaAndSource" : false, + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/README.md b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st new file mode 100644 index 00000000..3a9f4525 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st @@ -0,0 +1,4 @@ +running-checks +assertRule: aRuleClass expectedMatches: aCollection + + self assertRule: aRuleClass expectedMatches: aCollection ignoring: Array new \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st new file mode 100644 index 00000000..ccee1f72 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st @@ -0,0 +1,13 @@ +running-checks +assertRule: aRuleClass expectedMatches: aCollectionOfExpectedEntities ignoring: aCollectionOfIgnoredEntities + + self run: aRuleClass ignoring: aCollectionOfIgnoredEntities do: [ :critiques | | critiquedEntities | + critiquedEntities := critiques collect:[ :critique | critique sourceAnchor entity ]. + critiquedEntities do:[ :critiquedEntity | + self + assert: (aCollectionOfExpectedEntities includes: critiquedEntity) + description: critiquedEntity printString , ' should not be reported' ]. + aCollectionOfExpectedEntities do: [ :expectedEntity | + self + assert: (critiquedEntities includes: expectedEntity) + description: expectedEntity printString , ' should be reported' ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st new file mode 100644 index 00000000..083ac05b --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st @@ -0,0 +1,6 @@ +accessing-code +canParse: aString + RBParser + parseMethod: aString + onError: [ :err :pos | ^ false ]. + ^ true \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st new file mode 100644 index 00000000..cfe78bd0 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st @@ -0,0 +1,3 @@ +accessing +category + ^ self class category , '-Data' \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/compile.in..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/compile.in..st new file mode 100644 index 00000000..cb2577d5 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/compile.in..st @@ -0,0 +1,7 @@ +accessing-code +compile: aString in: aClass + + GRPlatform current + compile: aString + into: aClass + classified: #accessing \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineClass.superclass..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineClass.superclass..st new file mode 100644 index 00000000..9769e83e --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineClass.superclass..st @@ -0,0 +1,4 @@ +accessing-code +defineClass: aClassSymbol superclass: aSuperSymbol + "For compatibility" + ^ self defineSubClassOf: aSuperSymbol \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st new file mode 100644 index 00000000..92da2de7 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st @@ -0,0 +1,20 @@ +accessing-code +defineSubClassOf: aSuperSymbol + + | class | + class := SystemVersion current major >= 12 + ifTrue: [ + factory make: [ :aBuilder | + aBuilder + superclass: (Smalltalk at: aSuperSymbol); + package: self category ] ] + ifFalse: [ + factory + newSubclassOf: (Smalltalk at: aSuperSymbol) + instanceVariableNames: '' + classVariableNames: 'classVarsString' + category: self category ]. + environment + addClass: class; + addClass: class classSide. + ^ class \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st new file mode 100644 index 00000000..70092732 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st @@ -0,0 +1,7 @@ +accessing +rules + ^ OrderedCollection new + addAll: GRReSlimeBlockLintRule allSubclasses; + addAll: GRReSlimeParseTreeLintRule allSubclasses; +" addAll: GRSlimeTransformationRule allSubclasses;" + yourself \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st new file mode 100644 index 00000000..09d5db28 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st @@ -0,0 +1,28 @@ +running-checks +run: aRuleClass ignoring: aCollectionOfEntities do: aBlock + + | rules rule runner | + rules := self rules + collect: [ :each | each new ]. + rule := rules + detect: [ :each | each isKindOf: aRuleClass ] + ifNone: [ self error: ('{1} is not a slime rule' format: { aRuleClass name }) ]. + self + assert: (rule name isString and: [ rule name notEmpty ]) + description: aRuleClass name , ' has no name'. + self + assert: (rule rationale isString and: [ rule rationale notEmpty and: [ rule rationale endsWithSubCollection: '.' ] ]) + description: aRuleClass name , ' has no rationale'. + runner := ReSmalllintChecker new. + rules do: [ :each | + runner + rule: { each }; + environment: environment; + run ]. + rules do: [ :each | | result | + result := runner criticsOf: each. + self + assert: (rule = each or: [ result isEmpty "and: [ each changes isEmpty ]) or: [ aCollectionOfEntities includes: each class ]" ]) + description: each name , ' should not report errors' ]. + aBlock value: (runner criticsOf: rule). + ^ rule \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st new file mode 100644 index 00000000..9465625f --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st @@ -0,0 +1,3 @@ +running +runCase + GRPlatform current doSilently: [ super runCase ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st new file mode 100644 index 00000000..49b8b233 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st @@ -0,0 +1,15 @@ +running-checks +runTransformation: aClass changes: aCollection + + | expected | + expected := aCollection + collect: [ :each | RBParser parseMethod: each ]. + self run: aClass ignoring: Array new do: [ :rule :rules | + rule changes do: [ :change | + self + assert: (expected anySatisfy: [ :parseTree | change parseTree = parseTree ]) + description: change selector , ' should not be transformed' ]. + expected do: [ :parseTree | + self + assert: (rule changes anySatisfy: [ :change | change parseTree = parseTree ]) + description: parseTree selector , ' should be transformed' ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st new file mode 100644 index 00000000..ee5004c0 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st @@ -0,0 +1,6 @@ +running +setUp + super setUp. + factory := ClassFactoryForTestCase new. + model := RBNamespace new. + environment := RBClassEnvironment new \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/tearDown.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/tearDown.st new file mode 100644 index 00000000..82f6aabd --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/tearDown.st @@ -0,0 +1,5 @@ +running +tearDown + + super tearDown. + factory cleanUp \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st new file mode 100644 index 00000000..d4020fe4 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st @@ -0,0 +1,12 @@ +tests-transform +testAnsiBooleansRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'and 1 and: [ 2 ] and: [ 3 ] and: [ 4 ]' in: class. + self compile: 'or 1 or: [ 2 ] or: [ 3 ] or: [ 4 ]' in: class. + self + runTransformation: GRAnsiBooleansRule + changes: #( + 'and 1 and: [ 2 and: [ 3 and: [ 4 ] ] ]' + 'or 1 or: [ 2 or: [ 3 or: [ 4 ] ] ]' ) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st new file mode 100644 index 00000000..3507a7e9 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st @@ -0,0 +1,10 @@ +tests-transform +testAnsiCharacterRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'character Character value: 123' in: class. + self compile: 'characterRange $a to: $c' in: class. + self + runTransformation: GRAnsiCharactersRule + changes: #('character Character codePoint: 123' 'characterRange ''abc''') \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st new file mode 100644 index 00000000..d4cfdb9b --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st @@ -0,0 +1,37 @@ +tests-transform +testAnsiCollectionsRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'withIndexDo #() withIndexDo: [ :each :index | each + index ]' in: class. + self compile: 'doWithIndex #() doWithIndex: [ :each :index | each + index ]' in: class. + self compile: 'collectThenDo #() collect: [ :a | a ] thenDo: [ :b | b ]' in: class. + self compile: 'collectThenSelect #() collect: [ :a | a ] thenSelect: [ :b | true ]' in: class. + self compile: 'detectSum #(1 2) detectSum: [ :each | each ]' in: class. + self compile: 'detectSumMultiline #(1 2) detectSum: [ :each | #foo copy. each ]' in: class. + self compile: 'pairsDo #(1 2 3 4) pairsDo: [ :a :b | b ]' in: class. + self compile: 'rejectThenDo #() reject: [ :a | true ] thenDo: [ :b | b ]' in: class. + self compile: 'selectThenCollect #() select: [ :a | true ] thenCollect: [ :b | b ]' in: class. + self compile: 'selectThenDo #() select: [ :a | true ] thenDo: [ :b | b ]' in: class. + self compile: 'valuesDo #() valuesDo: [ :a | a ]' in: class. + self compile: 'reversed #() reversed' in: class. + self compile: 'keysSortedSafely Dictionary new keysSortedSafely' in: class. + self compile: 'newWithAll Array new: 4 withAll: $a' in: class. + self + runTransformation: GRAnsiCollectionsRule + changes: #( + 'withIndexDo #() keysAndValuesDo: [ :index :each | each + index ]' + 'doWithIndex #() keysAndValuesDo: [ :index :each | each + index ]' + 'collectThenDo (#() collect: [ :a | a ]) do: [ :b | b ]' + 'selectThenDo (#() select: [ :a | true ]) do: [ :b | b ]' + 'rejectThenDo (#() reject: [ :a | true ]) do: [ :b | b ]' + 'selectThenCollect (#() select: [ :a | true ]) collect: [ :b | b ]' + 'pairsDo 1 to: #(1 2 3 4) size by: 2 do: [ :index | | a b | a := #(1 2 3 4) at: index. b := #(1 2 3 4) at: index + 1. b ]' + 'collectThenSelect (#() collect: [ :a | a ]) select: [ :b | true ]' + 'detectSum #(1 2) inject: 0 into: [ :sum :each | sum + each ]' + 'detectSumMultiline #(1 2) inject: 0 into: [ :sum :each | #foo copy. sum + each ]' + 'valuesDo #() do: [ :a | a ]' + 'reversed #() reverse' + 'keysSortedSafely Dictionary new keys asSortedCollection' + 'newWithAll (Array new: 4) atAllPut: $a' + ) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st new file mode 100644 index 00000000..8d15ea35 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st @@ -0,0 +1,12 @@ +tests-transform +testAnsiConditionalsRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'ifNotNil 1 ifNotNil: [ | a | self or. self and ]' in: class. + self compile: 'ifNotNilDo 1 ifNotNilDo: [ :a | ^ a ]' in: class. + self + runTransformation: GRAnsiConditionalsRule + changes: #( + 'ifNotNil 1 ifNotNil: [ :arg | | a | self or. self and ]' + 'ifNotNilDo 1 ifNotNil: [ :a | ^ a ]' ) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st new file mode 100644 index 00000000..fd54043f --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st @@ -0,0 +1,12 @@ +tests-transform +testAnsiConvertorRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'convertInteger ''1'' asInteger' in: class. + self compile: 'convertString 2 asString' in: class. + self + runTransformation: GRAnsiConvertorRule + changes: #( + 'convertInteger ''1'' greaseInteger' + 'convertString 2 greaseString' ) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st new file mode 100644 index 00000000..af061a7e --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st @@ -0,0 +1,14 @@ +tests-transform +testAnsiExceptionsRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'exception1 [ self or ] on: Error do: [ self or ]' in: class. + self compile: 'exception2 [ self or ] on: Error do: [ self or. self or ]' in: class. + self compile: 'exception3 [ self or ] on: Error do: [ | a | a := 0 ]' in: class. + self + runTransformation: GRAnsiExceptionsRule + changes: #( + 'exception1 [ self or ] on: Error do: [ :err | self or ]' + 'exception2 [ self or ] on: Error do: [ :err | self or. self or ]' + 'exception3 [ self or ] on: Error do: [ :err | | a | a := 0 ]' ) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st new file mode 100644 index 00000000..6550cb75 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st @@ -0,0 +1,14 @@ +tests-transform +testAnsiStreamsRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'writeStream ^ '''' writeStream' in: class. + self compile: 'writeCr | stream | stream := WriteStream on: ''''. stream cr. stream nextPut: Character cr' in: class. + self compile: 'writeLf | stream | stream := WriteStream on: ''''. stream lf. stream nextPut: Character lf' in: class. + self + runTransformation: GRAnsiStreamsRule + changes: #( + 'writeStream ^ WriteStream on: ''''' + 'writeCr | stream | stream := WriteStream on: ''''. stream nextPut: Character cr. stream nextPut: Character cr' + 'writeLf | stream | stream := WriteStream on: ''''. stream nextPut: Character lf. stream nextPut: Character lf') \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st new file mode 100644 index 00000000..2b01a845 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st @@ -0,0 +1,28 @@ +tests-transform +testAnsiStringsRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'stringCr String cr, (String with: Character cr)' in: class. + self compile: 'stringTab String tab, (String with: Character tab)' in: class. + self compile: 'stringLf String lf, (String with: Character lf)' in: class. + self compile: 'stringCrLf String crlf, (String with: Character cr with: Character lf)' in: class. + self compile: 'stringSpace String space, (String with: Character space)' in: class. + self compile: 'findTokens ''123'' findTokens: '',''' in: class. + self compile: 'findTokensCharacter ''123'' findTokens: $,' in: class. + self compile: 'findTokensArray ''123'' findTokens: #($, $;)' in: class. + self compile: 'includesSubString ''1234'' includesSubString: ''23''' in: class. + self compile: 'includesSubString ''1234'' includesSubstring: ''23''' in: class. + self + runTransformation: GRAnsiStringsRule + changes: #( + 'stringCr (String with: Character cr), (String with: Character cr)' + 'stringTab (String with: Character tab), (String with: Character tab)' + 'stringLf (String with: Character lf), (String with: Character lf)' + 'stringCrLf (String with: Character cr with: Character lf), (String with: Character cr with: Character lf)' + 'stringSpace (String with: Character space), (String with: Character space)' + 'findTokens ''123'' subStrings: '',''' + 'findTokensCharacter ''123'' subStrings: '',''' + 'findTokensArray ''123'' subStrings: '',;''' + 'includesSubString (''1234'' indexOfSubCollection: ''23'' startingAt: 0) ~= 0' + 'includesSubString (''1234'' indexOfSubCollection: ''23'' startingAt: 0) ~= 0') \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st new file mode 100644 index 00000000..10d39dc6 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st @@ -0,0 +1,9 @@ +tests-block +testBasicNewInitializeMissing + + | class | + class := self defineSubClassOf: #Object. + self compile: 'initialize' in: class. + self + assertRule: GRBasicNewInitializeMissingRule + expectedMatches: { class } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st new file mode 100644 index 00000000..a1ad82b5 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st @@ -0,0 +1,29 @@ +tests-parsetree +testBlockFormatting + + | class | + class := self defineSubClassOf: #GRObject. + self + compile: 'invalid1 + [:a ]' + in: class. + self + compile: 'invalid2 + [:a | ]' + in: class. + self + compile: 'invalid3 + [ :b]' + in: class. + + self + compile: 'invalid4 + [ :a| ]' + in: class. + self + compile: 'invalid5 + [ :a |a ]' + in: class. + self + runRule: GRBlockFormattingRule + selectors: #(invalid1 invalid2 invalid3 invalid4 invalid5) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st new file mode 100644 index 00000000..24c4cb57 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st @@ -0,0 +1,11 @@ +tests-parsetree +testDeprecatedApiProtocol + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'deprecated1 self greaseDeprecatedApi: ''',class name,'>>#deprecated1'' details: ''Something.''' in: class. + self compile: 'deprecated2 self greaseDeprecatedApi: ''',class name,'>>#deprecated'' details: ''Something.''' in: class. + self compile: 'deprecated3 self greaseDeprecatedApi: ''GRSlimeMock>>#deprecated3'' details: ''Something.''' in: class. + self + assertRule: GRDeprecatedApiProtocolRule + expectedMatches: { class>>#deprecated2 . class>>#deprecated3 } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st new file mode 100644 index 00000000..834e9f96 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st @@ -0,0 +1,13 @@ +tests-block +testEmptyStatements + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'emptyStatement1. self and' in: class. + self compile: 'emptyStatement2 self and..' in: class. + self compile: 'emptyStatement3 self and."foo".' in: class. + self compile: 'emptyStatement4 self and."foo".self and' in: class. + self + runRule: GREmptyStatementsRule + selectors: #(emptyStatement1 emptyStatement2 emptyStatement3 emptyStatement4) + ignoring: (Array with: GRUnnecessaryLastPeriodRule) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st new file mode 100644 index 00000000..9db27eb0 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st @@ -0,0 +1,9 @@ +tests-block +testInvalidObjectInitialization + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'initializeFoo: aNumber' in: class. + self + runRule: GRInvalidObjectInitializationRule + selectors: #(initializeFoo:) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st new file mode 100644 index 00000000..e21849d4 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st @@ -0,0 +1,15 @@ +tests-block +testNonPortableMessageRule + + | class | + class := self defineSubClassOf: #GRObject. + + self compile: 'invalid1 ^ Array new anyOne' in: class. + self compile: 'valid1 ^ Array new first' in: class. + + self compile: 'invalid2 ^ Array new withIndexCollect: [ :each :index | each hash ]' in: class. + self compile: 'valid2 ^ Array new do: [ :each | each hash ]' in: class. + + self + runRule: GRNonPortableMessageRule + selectors: #(invalid1 invalid2) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st new file mode 100644 index 00000000..03012fdc --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st @@ -0,0 +1,10 @@ +tests-block +testNonPortableSourceFormat + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'invalid ^ ''Unicode snow man', (String with: (Character codePoint: 16r2603)) , '''' in: class. + self compile: 'valid ^ ''everything is fine''' in: class. + self + runRule: GRNonPortableSourceFormatRule + selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st new file mode 100644 index 00000000..2e619cfa --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st @@ -0,0 +1,12 @@ +tests-transform +testNotPortableCollectionsRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'beginsWith1 ''abc'' beginsWith: ''a''' in: class. + self compile: 'endsWith1 ''abc'' endsWith: ''a''' in: class. + self + runTransformation: GRNotPortableCollectionsRule + changes: #( + 'beginsWith1 ''abc'' greaseBeginsWith: ''a''' + 'endsWith1 ''abc'' greaseEndsWith: ''a''') \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st new file mode 100644 index 00000000..dcd86cb1 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st @@ -0,0 +1,13 @@ +tests-transform +testObjectIn + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'objectIn1 1 in: [ :val | val factorial ]' in: class. + self compile: 'objectIn2 2 in: [ :val | | temps | val factorial ]' in: class. + self compile: 'objectIn3 2 in: [ ''not this'' ]' in: class. + self + runTransformation: GRObjectInRule + changes: #( + 'objectIn1 [ :val | val factorial ] value: 1' + 'objectIn2 [ :val | | temps | val factorial ] value: 2') \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st new file mode 100644 index 00000000..d4c1b96b --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st @@ -0,0 +1,16 @@ +tests-parsetree +testParensFormatting + + | class | + class := self defineSubClassOf: #GRObject. + self + compile: 'invalid1 + ( 1 + 2)' + in: class. + self + compile: 'invalid2 + (1 + 2 )' + in: class. + self + runRule: GRParensFormattingRule + selectors: #(invalid1 invalid2) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st new file mode 100644 index 00000000..0dc37ff6 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st @@ -0,0 +1,16 @@ +tests-parsetree +testReturnFormatting + + | class | + class := self defineSubClassOf: #GRObject. + self + compile: 'invalid1 + ^1' + in: class. + self + compile: 'invalid2 + ^ 2' + in: class. + self + runRule: GRReturnFormattingRule + selectors: #(invalid1 invalid2) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st new file mode 100644 index 00000000..b86d8685 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st @@ -0,0 +1,20 @@ +tests-parsetree +testTempsFormatting + + | class | + class := self defineSubClassOf: #GRObject. + self + compile: 'invalid1 + | a|' + in: class. + self + compile: 'invalid2 + |a |' + in: class. + self + compile: 'invalid3 + | a b |' + in: class. + self + runRule: GRTempsFormattingRule + selectors: #(invalid1 invalid2 invalid3) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st new file mode 100644 index 00000000..ad803388 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st @@ -0,0 +1,10 @@ +tests-transform +testTestCaseFailRule + + | class | + class := self defineSubClassOf: #TestCase. + self compile: 'testMethod self fail' in: class. + self + runTransformation: GRTestAssertionsRule + changes: #( + 'testMethod self assert: false' ) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st new file mode 100644 index 00000000..b9bde3fc --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st @@ -0,0 +1,10 @@ +tests-block +testUnnecessaryLastPeriodRule + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'invalid 1. 2.' in: class. + self compile: 'valid 1. 2' in: class. + self + runRule: GRUnnecessaryLastPeriodRule + selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st new file mode 100644 index 00000000..8164bc7c --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st @@ -0,0 +1,20 @@ +tests-parsetree +testUsesCanPerformOrUnderstand + + | class | + class := self defineSubClassOf: #GRObject. + self + compile: 'invalid1 + Object class canUnderstand: #new' + in: class. + self + compile: 'invalid2 + Object class canPerform: #new' + in: class. + self + compile: 'valid + Object respondsTo: #new' + in: class. + self + runRule: GRUsesCanPerformOrUnderstandRule + selectors: #(invalid1 invalid2) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st new file mode 100644 index 00000000..f7ae3cf0 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st @@ -0,0 +1,16 @@ +tests-parsetree +testUsesClassForHash + + | class | + class := self defineSubClassOf: #GRObject. + self + compile: 'foo + ^ super hash bitXor: self class hash' + in: class. + self + compile: 'hash + ^ super hash bitXor: self class hash' + in: class. + self + runRule: GRUsesClassForHashRule + selectors: #(hash) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st new file mode 100644 index 00000000..04f7298e --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st @@ -0,0 +1,18 @@ +tests-parsetree +testUsesCurlyBraceArrays + + | class | + (self canParse: 'foo { self foo. self bar }') + ifFalse: [ ^ self ]. + class := self defineSubClassOf: #GRObject. + self + compile: 'invalid + ^ { self foo. self bar }' + in: class. + self + compile: 'valid + ^ Array new' + in: class. + self + runRule: GRUsesCurlyBraceArraysRule + selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st new file mode 100644 index 00000000..31d12a9d --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st @@ -0,0 +1,12 @@ +tests-block +testUsesMethodAnnotations + + | class | + (self canParse: 'foo ') + ifFalse: [ ^ self ]. + class := self defineSubClassOf: #GRObject. + self compile: 'invalid ' in: class. + self compile: 'valid' in: class. + self + runRule: GRUsesMethodAnnotationsRule + selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st new file mode 100644 index 00000000..2e2bcb62 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st @@ -0,0 +1,10 @@ +tests-block +testUsesNotPortableClass + + | class | + class := self defineSubClassOf: #GRObject. + self compile: 'invalid ^ Semaphore new' in: class. + self compile: 'valid ^ GRObject new' in: class. + self + runRule: GRUsesNotPortableClassRule + selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/properties.json b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/properties.json new file mode 100644 index 00000000..b4ebf23f --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/properties.json @@ -0,0 +1,15 @@ +{ + "commentStamp" : "", + "super" : "TestCase", + "category" : "Grease-Tests-Pharo-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "model", + "environment", + "factory" + ], + "name" : "GRReSlimeTest", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st new file mode 100644 index 00000000..6c2ac5ef --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'Grease-Tests-Pharo-Slime'! diff --git a/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/initializers.st b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/initializers.st new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/package b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/package new file mode 100644 index 00000000..e2360038 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'Grease-Tests-Pharo-Slime') \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/properties.json b/repository/Grease-Tests-Pharo-Slime.package/properties.json new file mode 100644 index 00000000..6f31cf5a --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/properties.json @@ -0,0 +1 @@ +{ } \ No newline at end of file From 98f2c5c7fdae7965f704a76863cda341d8e45972 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 14:26:22 +0100 Subject: [PATCH 04/20] Correct baseline typo --- .../BaselineOfGrease.class/instance/baselinePharo..st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st index 336a93a6..78d30c22 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st @@ -45,7 +45,7 @@ baselinePharo: spec includes: #('Grease-Tests-Pharo-Core') ]; package: 'Grease-Pharo90-Core' with: [ spec requires: #('Grease-Core') ]; package: 'Grease-Pharo90-Slime' with: [ spec requires: #('Grease-Core') ]; - package: 'Grease-Tests-Slime' with: [ spec requires: #('Grease-Pharo90-Slime') ]. + package: 'Grease-Tests-Pharo-Slime' with: [ spec requires: #('Grease-Pharo90-Slime') ]. spec group: 'Slime' with: #('Grease-Pharo90-Slime'); From 171232fff29510b735054cc2453d390448b09a45 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 14:34:39 +0100 Subject: [PATCH 05/20] Remove obsolete tests from older Slime test package as well --- .../instance/baselinePharo..st | 4 ++-- .../instance/testEmptyStatements.st | 12 ------------ .../instance/testUsesLiteralByteArrays.st | 17 ----------------- .../monticello.meta/categories.st | 2 +- 4 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testEmptyStatements.st delete mode 100644 repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testUsesLiteralByteArrays.st diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st index 78d30c22..6c0696c0 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st @@ -66,5 +66,5 @@ baselinePharo: spec package: 'Grease-Tests-Pharo-Slime' with: [ spec requires: #('Grease-Pharo110-Slime') ]. spec - group: 'Slime' with: #('Grease-Pharo90-Slime'); - group: 'Slime Tests' with: #('Grease-Tests-Slime') ] + group: 'Slime' with: #('Grease-Pharo110-Slime'); + group: 'Slime Tests' with: #('Grease-Tests-Pharo-Slime') ] diff --git a/repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testEmptyStatements.st b/repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testEmptyStatements.st deleted file mode 100644 index e4b03969..00000000 --- a/repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testEmptyStatements.st +++ /dev/null @@ -1,12 +0,0 @@ -tests-block -testEmptyStatements - | class | - class := self defineSubClassOf: #GRObject. - self compile: 'emptyStatement1. self and' in: class. - self compile: 'emptyStatement2 self and..' in: class. - self compile: 'emptyStatement3 self and."foo".' in: class. - self compile: 'emptyStatement4 self and."foo".self and' in: class. - self - runRule: GREmptyStatementsRule - selectors: #(emptyStatement1 emptyStatement2 emptyStatement3 emptyStatement4) - ignoring: (Array with: GRUnnecessaryLastPeriodRule) \ No newline at end of file diff --git a/repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testUsesLiteralByteArrays.st b/repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testUsesLiteralByteArrays.st deleted file mode 100644 index 342eb995..00000000 --- a/repository/Grease-Tests-Slime.package/GRSlimeTest.class/instance/testUsesLiteralByteArrays.st +++ /dev/null @@ -1,17 +0,0 @@ -tests-parsetree -testUsesLiteralByteArrays - | class | - (self canParse: 'foo #[ 1 2 3 ]') - ifFalse: [ ^ self ]. - class := self defineSubClassOf: #GRObject. - self - compile: 'invalid - ^ #[ 1 2 3 ]' - in: class. - self - compile: 'valid - ^ ByteArray with: 1 with: 2 with: 3' - in: class. - self - runRule: GRUsesLiteralByteArraysRule - selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Slime.package/monticello.meta/categories.st b/repository/Grease-Tests-Slime.package/monticello.meta/categories.st index a49916c2..d34cfb4a 100644 --- a/repository/Grease-Tests-Slime.package/monticello.meta/categories.st +++ b/repository/Grease-Tests-Slime.package/monticello.meta/categories.st @@ -1 +1 @@ -self packageOrganizer ensurePackage: #'Grease-Tests-Slime' withTags: #()! +SystemOrganization addCategory: #'Grease-Tests-Slime'! From d6705ffaa24f3146fe0cb6bfc63b948afce5c5d9 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 14:36:22 +0100 Subject: [PATCH 06/20] Fix another baseline typo --- .../BaselineOfGrease.class/instance/baselinePharo..st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st index 6c0696c0..69d5fe19 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselinePharo..st @@ -45,7 +45,7 @@ baselinePharo: spec includes: #('Grease-Tests-Pharo-Core') ]; package: 'Grease-Pharo90-Core' with: [ spec requires: #('Grease-Core') ]; package: 'Grease-Pharo90-Slime' with: [ spec requires: #('Grease-Core') ]; - package: 'Grease-Tests-Pharo-Slime' with: [ spec requires: #('Grease-Pharo90-Slime') ]. + package: 'Grease-Tests-Slime' with: [ spec requires: #('Grease-Pharo90-Slime') ]. spec group: 'Slime' with: #('Grease-Pharo90-Slime'); From 81bec5c74bc23e50ea5ed0dddf7d7ec60ba8c686 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 16:30:34 +0100 Subject: [PATCH 07/20] ported rules: invalid object initialization and non-portable messages --- .../README.md | 0 .../class/checksMethod.st | 4 ++++ .../instance/basicCheck..st | 10 ++++++++++ .../instance/group.st | 4 ++++ .../instance/name.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../properties.json | 11 +++++++++++ .../GRNonPortableMessageRule.class/README.md | 0 .../class/checksNode.st | 4 ++++ .../instance/basicCheck..st | 4 ++++ .../instance/group.st | 4 ++++ .../instance/methodNames.st | 4 ++++ .../GRNonPortableMessageRule.class/instance/name.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../GRNonPortableMessageRule.class/properties.json | 11 +++++++++++ .../instance/assertRule.expectedMatches..st | 4 ---- .../assertRule.expectedMatches.ignoring..st | 13 ------------- .../instance/assertRule.matches..st | 4 ++++ .../instance/assertRule.matches.ignoring..st | 13 +++++++++++++ .../GRReSlimeTest.class/instance/rules.st | 1 + .../instance/run.ignoring.do..st | 6 +++--- .../instance/testBasicNewInitializeMissing.st | 2 +- .../instance/testDeprecatedApiProtocol.st | 2 +- .../instance/testEmptyStatements.st | 6 ++++-- .../instance/testInvalidObjectInitialization.st | 6 +++--- .../instance/testNonPortableMessageRule.st | 6 +++--- 26 files changed, 105 insertions(+), 30 deletions(-) create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/class/checksMethod.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/basicCheck..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/class/checksNode.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/basicCheck..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/methodNames.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches..st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches.ignoring..st diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/class/checksMethod.st b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/class/checksMethod.st new file mode 100644 index 00000000..c0b5961f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/class/checksMethod.st @@ -0,0 +1,4 @@ +testing - interest +checksMethod + + ^ true \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/basicCheck..st b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/basicCheck..st new file mode 100644 index 00000000..1b7b4c47 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/basicCheck..st @@ -0,0 +1,10 @@ +running +basicCheck: aMethod + + ^ (aMethod methodClass isMeta not + and: [ (aMethod selector beginsWithSubCollection: #initialize) + and: [ aMethod selector numArgs > 0 + and: [ aMethod methodClass ~= GRObject + and: [ (aMethod methodClass includesBehavior: GRObject) + and: [ (aMethod superMessages includes: aMethod selector) not + and: [ aMethod selfMessages noneSatisfy: [ :each | each beginsWithSubCollection: #initialize ] ] ] ] ] ] ]) \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/name.st new file mode 100644 index 00000000..6386a8fd --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Invalid object initialization' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/rationale.st new file mode 100644 index 00000000..9ce37a52 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Initialize methods are required to call the designated initializer or its super implementation.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json new file mode 100644 index 00000000..4cbd7077 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeBlockLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRInvalidObjectInitializationRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/class/checksNode.st b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/class/checksNode.st new file mode 100644 index 00000000..5e68f2ca --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/class/checksNode.st @@ -0,0 +1,4 @@ +testing - interest +checksNode + + ^ true \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/basicCheck..st b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/basicCheck..st new file mode 100644 index 00000000..428bcd1c --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/basicCheck..st @@ -0,0 +1,4 @@ +running +basicCheck: anEntity + + ^ anEntity isMessage and:[ self methodNames includes: anEntity selector ] diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/methodNames.st b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/methodNames.st new file mode 100644 index 00000000..25a16ed6 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/methodNames.st @@ -0,0 +1,4 @@ +private +methodNames + + ^ #( anyOne withIndexCollect: ) \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/name.st new file mode 100644 index 00000000..cc5e5c47 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Uses non portable message' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/rationale.st new file mode 100644 index 00000000..bc7272e4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Some methods are not portable accross different Smalltalk dialects.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json new file mode 100644 index 00000000..95a60d91 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeBlockLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRNonPortableMessageRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st deleted file mode 100644 index 3a9f4525..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches..st +++ /dev/null @@ -1,4 +0,0 @@ -running-checks -assertRule: aRuleClass expectedMatches: aCollection - - self assertRule: aRuleClass expectedMatches: aCollection ignoring: Array new \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st deleted file mode 100644 index ccee1f72..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.expectedMatches.ignoring..st +++ /dev/null @@ -1,13 +0,0 @@ -running-checks -assertRule: aRuleClass expectedMatches: aCollectionOfExpectedEntities ignoring: aCollectionOfIgnoredEntities - - self run: aRuleClass ignoring: aCollectionOfIgnoredEntities do: [ :critiques | | critiquedEntities | - critiquedEntities := critiques collect:[ :critique | critique sourceAnchor entity ]. - critiquedEntities do:[ :critiquedEntity | - self - assert: (aCollectionOfExpectedEntities includes: critiquedEntity) - description: critiquedEntity printString , ' should not be reported' ]. - aCollectionOfExpectedEntities do: [ :expectedEntity | - self - assert: (critiquedEntities includes: expectedEntity) - description: expectedEntity printString , ' should be reported' ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches..st new file mode 100644 index 00000000..65b1cddd --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches..st @@ -0,0 +1,4 @@ +running-checks +assertRule: aRuleClass matches: expectedMatches + + self assertRule: aRuleClass matches: expectedMatches ignoring: Array new \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches.ignoring..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches.ignoring..st new file mode 100644 index 00000000..d2c4aa91 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/assertRule.matches.ignoring..st @@ -0,0 +1,13 @@ +running-checks +assertRule: aRuleClass matches: expectedMatches ignoring: ignoredRuleClasses + + self run: aRuleClass ignoring: ignoredRuleClasses do: [ :critiques | | critiquedEntities | + critiquedEntities := critiques collect:[ :critique | critique sourceAnchor entity ]. + critiquedEntities do:[ :critiquedEntity | + self + assert: (expectedMatches includes: critiquedEntity) + description: ('{1} should not be reported' format: { critiquedEntity printString }) ]. + expectedMatches do: [ :expectedEntity | + self + assert: (critiquedEntities includes: expectedEntity) + description: ('{1} should be reported' format: { expectedEntity printString }) ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st index 70092732..2a84e4b7 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st @@ -4,4 +4,5 @@ rules addAll: GRReSlimeBlockLintRule allSubclasses; addAll: GRReSlimeParseTreeLintRule allSubclasses; " addAll: GRSlimeTransformationRule allSubclasses;" + add: ReMultiplePeriodsTerminatingStatementRule; yourself \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st index 09d5db28..b6ec29e2 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/run.ignoring.do..st @@ -1,5 +1,5 @@ running-checks -run: aRuleClass ignoring: aCollectionOfEntities do: aBlock +run: aRuleClass ignoring: ignoredRuleClasses do: aBlock | rules rule runner | rules := self rules @@ -22,7 +22,7 @@ run: aRuleClass ignoring: aCollectionOfEntities do: aBlock rules do: [ :each | | result | result := runner criticsOf: each. self - assert: (rule = each or: [ result isEmpty "and: [ each changes isEmpty ]) or: [ aCollectionOfEntities includes: each class ]" ]) - description: each name , ' should not report errors' ]. + assert: (rule = each or: [ result isEmpty or: [ ignoredRuleClasses includes: each class ] ]) + description: ('{1} should not report errors' format: { each name }) ]. aBlock value: (runner criticsOf: rule). ^ rule \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st index 10d39dc6..679e1393 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBasicNewInitializeMissing.st @@ -6,4 +6,4 @@ testBasicNewInitializeMissing self compile: 'initialize' in: class. self assertRule: GRBasicNewInitializeMissingRule - expectedMatches: { class } \ No newline at end of file + matches: { class } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st index 24c4cb57..bc229c20 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testDeprecatedApiProtocol.st @@ -8,4 +8,4 @@ testDeprecatedApiProtocol self compile: 'deprecated3 self greaseDeprecatedApi: ''GRSlimeMock>>#deprecated3'' details: ''Something.''' in: class. self assertRule: GRDeprecatedApiProtocolRule - expectedMatches: { class>>#deprecated2 . class>>#deprecated3 } \ No newline at end of file + matches: { class>>#deprecated2 . class>>#deprecated3 } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st index 834e9f96..d65a638c 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st @@ -1,6 +1,8 @@ tests-block testEmptyStatements + "We added this test to make sure that this Pharo-supplied rule works because we previously had this one in Grease and it is important." + | class | class := self defineSubClassOf: #GRObject. self compile: 'emptyStatement1. self and' in: class. @@ -8,6 +10,6 @@ testEmptyStatements self compile: 'emptyStatement3 self and."foo".' in: class. self compile: 'emptyStatement4 self and."foo".self and' in: class. self - runRule: GREmptyStatementsRule - selectors: #(emptyStatement1 emptyStatement2 emptyStatement3 emptyStatement4) + assertRule: ReMultiplePeriodsTerminatingStatementRule + matches: { class>>#emptyStatement1 . class>>#emptyStatement2 . class>>#emptyStatement3 . class>>#emptyStatement4 } ignoring: (Array with: GRUnnecessaryLastPeriodRule) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st index 9db27eb0..c7bddcd6 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testInvalidObjectInitialization.st @@ -1,9 +1,9 @@ tests-block testInvalidObjectInitialization - + | class | class := self defineSubClassOf: #GRObject. self compile: 'initializeFoo: aNumber' in: class. self - runRule: GRInvalidObjectInitializationRule - selectors: #(initializeFoo:) \ No newline at end of file + assertRule: GRInvalidObjectInitializationRule + matches: { class>>#initializeFoo: } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st index e21849d4..d5b8d927 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableMessageRule.st @@ -1,6 +1,6 @@ tests-block testNonPortableMessageRule - + | class | class := self defineSubClassOf: #GRObject. @@ -11,5 +11,5 @@ testNonPortableMessageRule self compile: 'valid2 ^ Array new do: [ :each | each hash ]' in: class. self - runRule: GRNonPortableMessageRule - selectors: #(invalid1 invalid2) \ No newline at end of file + assertRule: GRNonPortableMessageRule + matches: { class>>#invalid1 . class>>#invalid2 } \ No newline at end of file From 2800c455039fe438b796c74132f9681cfa0f5e31 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 17:15:27 +0100 Subject: [PATCH 08/20] Ported Slime rule for referencing/using a non-portable class --- .../instance/baselineCommon..st | 1 + .../instance/baselineGemStone..st | 1 + .../GRReferencesNotPortableClassRule.class/README.md | 0 .../class/checksMethod.st | 4 ++++ .../instance/basicCheck..st | 8 ++++++++ .../instance/name.st | 4 ++++ .../properties.json | 11 +++++++++++ .../GRSubclassesNotPortableClassRule.class/README.md | 0 .../class/checksClass.st | 4 ++++ .../instance/basicCheck..st | 4 ++++ .../instance/name.st | 4 ++++ .../properties.json | 11 +++++++++++ .../GRUsesNotPortableClassRule.class/README.md | 0 .../class/isAbstract.st | 4 ++++ .../instance/classNames.st | 4 ++++ .../instance/group.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../GRUsesNotPortableClassRule.class/properties.json | 11 +++++++++++ .../GRReSlimeTest.class/instance/canParse..st | 1 + .../GRReSlimeTest.class/instance/category.st | 3 ++- .../GRReSlimeTest.class/instance/rules.st | 8 +++++--- .../GRReSlimeTest.class/instance/runCase.st | 1 + .../GRReSlimeTest.class/instance/setUp.st | 1 + .../instance/testNonPortableSourceFormat.st | 10 ---------- .../instance/testReferencesNotPortableClass.st | 11 +++++++++++ .../instance/testSubclassesNotPortableClass.st | 9 +++++++++ .../instance/testUnnecessaryLastPeriodRule.st | 6 +++--- .../instance/testUsesMethodAnnotations.st | 12 ------------ .../instance/testUsesNotPortableClass.st | 7 ++++--- 29 files changed, 116 insertions(+), 32 deletions(-) create mode 100644 repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/class/checksMethod.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/basicCheck..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/class/checksClass.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/basicCheck..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/classNames.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st index 14755223..0ead53ce 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineCommon..st @@ -1,5 +1,6 @@ baselines baselineCommon: spec + spec for: #common do: [ spec blessing: #baseline. diff --git a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st index fe1b4782..85554409 100644 --- a/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st +++ b/repository/BaselineOfGrease.package/BaselineOfGrease.class/instance/baselineGemStone..st @@ -1,5 +1,6 @@ baselines baselineGemStone: spec + spec for: #'gemstone' do: [ diff --git a/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/class/checksMethod.st b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/class/checksMethod.st new file mode 100644 index 00000000..c0b5961f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/class/checksMethod.st @@ -0,0 +1,4 @@ +testing - interest +checksMethod + + ^ true \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/basicCheck..st b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/basicCheck..st new file mode 100644 index 00000000..18b14d25 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/basicCheck..st @@ -0,0 +1,8 @@ +running +basicCheck: aMethod + + (aMethod methodClass instanceSide category indexOfSubCollection: #'-Pharo-' startingAt: 1) ~= 0 ifTrue: [ + "classes in a -Pharo- package are per definition not portable and therefore allowed to use non-portable classes" + ^ false ]. + + ^ aMethod literals anySatisfy: [ :each | each isVariableBinding and: [ self classNames includes: each key ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/name.st new file mode 100644 index 00000000..510ca2ab --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Uses not portable class' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/properties.json new file mode 100644 index 00000000..d21602c8 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReferencesNotPortableClassRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRUsesNotPortableClassRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRReferencesNotPortableClassRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/class/checksClass.st b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/class/checksClass.st new file mode 100644 index 00000000..918ec479 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/class/checksClass.st @@ -0,0 +1,4 @@ +testing - interest +checksClass + + ^ true \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/basicCheck..st b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/basicCheck..st new file mode 100644 index 00000000..1091897f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/basicCheck..st @@ -0,0 +1,4 @@ +running +basicCheck: aClass + + ^ aClass allSuperclasses anySatisfy: [ :each | self classNames includes: each name ] \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/name.st new file mode 100644 index 00000000..65a2945a --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Subclasses not portable class' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/properties.json new file mode 100644 index 00000000..65aeb32b --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSubclassesNotPortableClassRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRUsesNotPortableClassRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRSubclassesNotPortableClassRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st new file mode 100644 index 00000000..99dcbb1f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st @@ -0,0 +1,4 @@ +testing +isAbstract + + ^ self == GRUsesNotPortableClassRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/classNames.st b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/classNames.st new file mode 100644 index 00000000..0487cbe8 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/classNames.st @@ -0,0 +1,4 @@ +private +classNames + + ^ #( Delay MIMEDocument Monitor Mutex MutexSet Random Semaphore TimeStamp Timestamp MessageSend ) \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/rationale.st new file mode 100644 index 00000000..e9a097fe --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Some classes are not portable accross different Smalltalk dialects.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json new file mode 100644 index 00000000..2965264e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeBlockLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRUsesNotPortableClassRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st index 083ac05b..ddf9adbc 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/canParse..st @@ -1,5 +1,6 @@ accessing-code canParse: aString + RBParser parseMethod: aString onError: [ :err :pos | ^ false ]. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st index cfe78bd0..e4bff2ba 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/category.st @@ -1,3 +1,4 @@ -accessing +accessing-code category + ^ self class category , '-Data' \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st index 2a84e4b7..5508a8e7 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st @@ -1,8 +1,10 @@ -accessing +accessing-code rules - ^ OrderedCollection new + + ^ (OrderedCollection new addAll: GRReSlimeBlockLintRule allSubclasses; addAll: GRReSlimeParseTreeLintRule allSubclasses; " addAll: GRSlimeTransformationRule allSubclasses;" add: ReMultiplePeriodsTerminatingStatementRule; - yourself \ No newline at end of file + add: ReUnnecessaryLastPeriodRule; + yourself) reject: #isAbstract \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st index 9465625f..a508309b 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runCase.st @@ -1,3 +1,4 @@ running runCase + GRPlatform current doSilently: [ super runCase ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st index ee5004c0..1ba40656 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/setUp.st @@ -1,5 +1,6 @@ running setUp + super setUp. factory := ClassFactoryForTestCase new. model := RBNamespace new. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st deleted file mode 100644 index 03012fdc..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNonPortableSourceFormat.st +++ /dev/null @@ -1,10 +0,0 @@ -tests-block -testNonPortableSourceFormat - - | class | - class := self defineSubClassOf: #GRObject. - self compile: 'invalid ^ ''Unicode snow man', (String with: (Character codePoint: 16r2603)) , '''' in: class. - self compile: 'valid ^ ''everything is fine''' in: class. - self - runRule: GRNonPortableSourceFormatRule - selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st new file mode 100644 index 00000000..dbc22862 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st @@ -0,0 +1,11 @@ +tests-block +testReferencesNotPortableClass + + | class | + class := self defineSubClassOf: #GRObject. + class category: 'SomeCategory'. + self compile: 'invalid ^ Semaphore new' in: class. + self compile: 'valid ^ GRObject new' in: class. + self + assertRule: GRReferencesNotPortableClassRule + matches: { class>>#invalid }. \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st new file mode 100644 index 00000000..2ced3881 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st @@ -0,0 +1,9 @@ +tests-block +testSubclassesNotPortableClass + + | class | + class := self defineSubClassOf: #Mutex. + class category: 'SomeCategory'. + self + assertRule: GRSubclassesNotPortableClassRule + matches: { class } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st index b9bde3fc..d6358cc7 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st @@ -1,10 +1,10 @@ tests-block testUnnecessaryLastPeriodRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'invalid 1. 2.' in: class. self compile: 'valid 1. 2' in: class. self - runRule: GRUnnecessaryLastPeriodRule - selectors: #(invalid) \ No newline at end of file + assertRule: ReUnnecessaryLastPeriodRule + matches: { class>>#invalid } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st deleted file mode 100644 index 31d12a9d..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesMethodAnnotations.st +++ /dev/null @@ -1,12 +0,0 @@ -tests-block -testUsesMethodAnnotations - - | class | - (self canParse: 'foo ') - ifFalse: [ ^ self ]. - class := self defineSubClassOf: #GRObject. - self compile: 'invalid ' in: class. - self compile: 'valid' in: class. - self - runRule: GRUsesMethodAnnotationsRule - selectors: #(invalid) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st index 2e2bcb62..2df0cfed 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st @@ -1,10 +1,11 @@ tests-block testUsesNotPortableClass - + | class | class := self defineSubClassOf: #GRObject. + class category: 'SomeCategory'. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self - runRule: GRUsesNotPortableClassRule - selectors: #(invalid) \ No newline at end of file + assertRule: GRReferencesNotPortableClassRule + matches: { class>>#invalid }. \ No newline at end of file From 1c021777615790a2b4f0ed6f11a8cd269788c65b Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 17:35:52 +0100 Subject: [PATCH 09/20] Block and Parens formatting rules moved to the PharoWithStyle project; removed the curly braces rule since it is not applicable anymore --- .../instance/testBlockFormatting.st | 29 ------------------- .../instance/testParensFormatting.st | 16 ---------- .../instance/testUsesCurlyBraceArrays.st | 18 ------------ 3 files changed, 63 deletions(-) delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st deleted file mode 100644 index a1ad82b5..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testBlockFormatting.st +++ /dev/null @@ -1,29 +0,0 @@ -tests-parsetree -testBlockFormatting - - | class | - class := self defineSubClassOf: #GRObject. - self - compile: 'invalid1 - [:a ]' - in: class. - self - compile: 'invalid2 - [:a | ]' - in: class. - self - compile: 'invalid3 - [ :b]' - in: class. - - self - compile: 'invalid4 - [ :a| ]' - in: class. - self - compile: 'invalid5 - [ :a |a ]' - in: class. - self - runRule: GRBlockFormattingRule - selectors: #(invalid1 invalid2 invalid3 invalid4 invalid5) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st deleted file mode 100644 index d4c1b96b..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testParensFormatting.st +++ /dev/null @@ -1,16 +0,0 @@ -tests-parsetree -testParensFormatting - - | class | - class := self defineSubClassOf: #GRObject. - self - compile: 'invalid1 - ( 1 + 2)' - in: class. - self - compile: 'invalid2 - (1 + 2 )' - in: class. - self - runRule: GRParensFormattingRule - selectors: #(invalid1 invalid2) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st deleted file mode 100644 index 04f7298e..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCurlyBraceArrays.st +++ /dev/null @@ -1,18 +0,0 @@ -tests-parsetree -testUsesCurlyBraceArrays - - | class | - (self canParse: 'foo { self foo. self bar }') - ifFalse: [ ^ self ]. - class := self defineSubClassOf: #GRObject. - self - compile: 'invalid - ^ { self foo. self bar }' - in: class. - self - compile: 'valid - ^ Array new' - in: class. - self - runRule: GRUsesCurlyBraceArraysRule - selectors: #(invalid) \ No newline at end of file From 18a37b0bb5972a2fdcb4158900c3e8765872e7f2 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 18:06:23 +0100 Subject: [PATCH 10/20] Moved the return and temps formatting rules to the PharoWithStyle project --- .../GRReSlimeTest.class/instance/rules.st | 4 +--- .../instance/testReturnFormatting.st | 16 --------------- .../instance/testTempsFormatting.st | 20 ------------------- 3 files changed, 1 insertion(+), 39 deletions(-) delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st index 5508a8e7..8e2a8f69 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st @@ -1,10 +1,8 @@ -accessing-code +running rules ^ (OrderedCollection new addAll: GRReSlimeBlockLintRule allSubclasses; addAll: GRReSlimeParseTreeLintRule allSubclasses; " addAll: GRSlimeTransformationRule allSubclasses;" - add: ReMultiplePeriodsTerminatingStatementRule; - add: ReUnnecessaryLastPeriodRule; yourself) reject: #isAbstract \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st deleted file mode 100644 index 0dc37ff6..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReturnFormatting.st +++ /dev/null @@ -1,16 +0,0 @@ -tests-parsetree -testReturnFormatting - - | class | - class := self defineSubClassOf: #GRObject. - self - compile: 'invalid1 - ^1' - in: class. - self - compile: 'invalid2 - ^ 2' - in: class. - self - runRule: GRReturnFormattingRule - selectors: #(invalid1 invalid2) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st deleted file mode 100644 index b86d8685..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTempsFormatting.st +++ /dev/null @@ -1,20 +0,0 @@ -tests-parsetree -testTempsFormatting - - | class | - class := self defineSubClassOf: #GRObject. - self - compile: 'invalid1 - | a|' - in: class. - self - compile: 'invalid2 - |a |' - in: class. - self - compile: 'invalid3 - | a b |' - in: class. - self - runRule: GRTempsFormattingRule - selectors: #(invalid1 invalid2 invalid3) \ No newline at end of file From e34bcc2d9f730c735fd42248ce1de8265013b739 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 19:21:42 +0100 Subject: [PATCH 11/20] Two more Slime rules ported --- .../GRUsesCanPerformOrUnderstandRule.class/README.md | 0 .../instance/group.st | 4 ++++ .../instance/initialize.st | 7 +++++++ .../instance/name.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../properties.json | 11 +++++++++++ .../GRUsesClassForHashRule.class/README.md | 0 .../instance/afterCheck.mappings..st | 4 ++++ .../GRUsesClassForHashRule.class/instance/group.st | 4 ++++ .../instance/initialize.st | 5 +++++ .../GRUsesClassForHashRule.class/instance/name.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../GRUsesClassForHashRule.class/properties.json | 11 +++++++++++ .../instance/testEmptyStatements.st | 2 +- .../instance/testUsesCanPerformOrUnderstand.st | 6 +++--- .../instance/testUsesClassForHash.st | 6 +++--- 16 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/afterCheck.mappings..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/initialize.st new file mode 100644 index 00000000..6ca1e900 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/initialize.st @@ -0,0 +1,7 @@ +initialization +initialize + + super initialize. + self matchesAny: #( + '`@receiver canPerform: `@selector' + '`@receiver canUnderstand: `@selector' ) \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/name.st new file mode 100644 index 00000000..a7805d06 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Sends #canPerform: or #canUnderstand:' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/rationale.st new file mode 100644 index 00000000..4332f561 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ '#canPerform: or #canUnderstand: are not portable.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json new file mode 100644 index 00000000..70456891 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeParseTreeLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRUsesCanPerformOrUnderstandRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/afterCheck.mappings..st b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/afterCheck.mappings..st new file mode 100644 index 00000000..4648081c --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/afterCheck.mappings..st @@ -0,0 +1,4 @@ +hooks +afterCheck: aNode mappings: mappingDict + + ^ aNode methodNode selector = #hash \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/initialize.st new file mode 100644 index 00000000..190c57e0 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/initialize.st @@ -0,0 +1,5 @@ +initialization +initialize + + super initialize. + self matches: '`@receiver class hash' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/name.st new file mode 100644 index 00000000..2a762ed7 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Uses its class for hash' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/rationale.st new file mode 100644 index 00000000..018489ab --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'The hash of an object should not depend on the hash of its class as some Smalltalk have non-constant class hashes.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json new file mode 100644 index 00000000..c679f3eb --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeParseTreeLintRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRUsesClassForHashRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st index d65a638c..352c6fdc 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testEmptyStatements.st @@ -12,4 +12,4 @@ testEmptyStatements self assertRule: ReMultiplePeriodsTerminatingStatementRule matches: { class>>#emptyStatement1 . class>>#emptyStatement2 . class>>#emptyStatement3 . class>>#emptyStatement4 } - ignoring: (Array with: GRUnnecessaryLastPeriodRule) \ No newline at end of file + ignoring: (Array with: ReUnnecessaryLastPeriodRule) \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st index 8164bc7c..5573c829 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesCanPerformOrUnderstand.st @@ -1,6 +1,6 @@ tests-parsetree testUsesCanPerformOrUnderstand - + | class | class := self defineSubClassOf: #GRObject. self @@ -16,5 +16,5 @@ testUsesCanPerformOrUnderstand Object respondsTo: #new' in: class. self - runRule: GRUsesCanPerformOrUnderstandRule - selectors: #(invalid1 invalid2) \ No newline at end of file + assertRule: GRUsesCanPerformOrUnderstandRule + matches: { class>>#invalid1 . class>>#invalid2 } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st index f7ae3cf0..7b934bbe 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesClassForHash.st @@ -1,6 +1,6 @@ tests-parsetree testUsesClassForHash - + | class | class := self defineSubClassOf: #GRObject. self @@ -12,5 +12,5 @@ testUsesClassForHash ^ super hash bitXor: self class hash' in: class. self - runRule: GRUsesClassForHashRule - selectors: #(hash) \ No newline at end of file + assertRule: GRUsesClassForHashRule + matches: { class>>#hash } \ No newline at end of file From 002bf2e272bd5a86072a13d6b251df685e175093 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 20:05:55 +0100 Subject: [PATCH 12/20] Ported ANSI Booleans transformation Slime rule --- .../GRAnsiBooleansRule.class/README.md | 0 .../instance/group.st | 4 ++++ .../instance/initialize.st | 19 +++++++++++++++++++ .../GRAnsiBooleansRule.class/instance/name.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../GRAnsiBooleansRule.class/properties.json | 11 +++++++++++ .../GRAnsiCharactersRule.class/README.md | 0 .../properties.json | 11 +++++++++++ .../class/isVisible.st | 4 ++++ .../class/isVisible.st | 4 ++++ .../README.md | 0 .../class/isVisible.st | 4 ++++ .../properties.json | 11 +++++++++++ .../GRReSlimeTest.class/instance/rules.st | 2 +- .../instance/runTransformation.changes..st | 14 +++++++------- .../instance/testAnsiBooleansRule.st | 2 +- .../testReferencesNotPortableClass.st | 2 +- .../instance/testUnnecessaryLastPeriodRule.st | 10 ---------- .../instance/testUsesNotPortableClass.st | 2 +- 19 files changed, 87 insertions(+), 21 deletions(-) create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json delete mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/initialize.st new file mode 100644 index 00000000..6058ed9f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/initialize.st @@ -0,0 +1,19 @@ +initialization +initialize + + super initialize. + self + replace: '``@expr1 and: [ | `@temp2 | ``@expr2 ] and: [ | `@temp3 | ``@expr3 ]' + with: '``@expr1 and: [ | `@temp2 | ``@expr2 and: [ | `@temp3 | ``@expr3 ] ]'; + replace: '``@expr1 and: [ | `@temp2 | ``@expr2 ] and: [ | `@temp3 | ``@expr3 ] and: [ | `@temp4 | ``@expr4 ]' + with: '``@expr1 and: [ | `@temp2 | ``@expr2 and: [ | `@temp3 | ``@expr3 and: [ | `@temp4 | ``@expr4 ] ] ]'; + replace: '``@expr1 and: [ | `@temp2 | ``@expr2 ] and: [ | `@temp3 | ``@expr3 ] and: [ | `@temp4 | ``@expr4 ] and: [ | `@temp5 | ``@expr5 ]' + with: '``@expr1 and: [ | `@temp2 | ``@expr2 and: [ | `@temp3 | ``@expr3 and: [ | `@temp4 | ``@expr4 and: [ | `@temp5 | ``@expr5 ] ] ] ]'; + replace: '``@expr1 or: [ | `@temp2 | ``@expr2 ] or: [ | `@temp3 | ``@expr3 ]' + with: '``@expr1 or: [ | `@temp2 | ``@expr2 or: [ | `@temp3 | ``@expr3 ] ]'; + replace: '``@expr1 or: [ | `@temp2 | ``@expr2 ] or: [ | `@temp3 | ``@expr3 ] or: [ | `@temp4 | ``@expr4 ]' + with: '``@expr1 or: [ | `@temp2 | ``@expr2 or: [ | `@temp3 | ``@expr3 or: [ | `@temp4 | ``@expr4 ] ] ]'; + replace: '``@expr1 or: [ | `@temp2 | ``@expr2 ] or: [ | `@temp3 | ``@expr3 ] or: [ | `@temp4 | ``@expr4 ] or: [ | `@temp5 | ``@expr5 ]' + with: '``@expr1 or: [ | `@temp2 | ``@expr2 or: [ | `@temp3 | ``@expr3 or: [ | `@temp4 | ``@expr4 or: [ | `@temp5 | ``@expr5 ] ] ] ]'; + replace: '``@expr1 or: [ | `@temp2 | ``@expr2 ] or: [ | `@temp3 | ``@expr3 ] or: [ | `@temp4 | ``@expr4 ] or: [ | `@temp5 | ``@expr5 ] or: [ | `@temp6 | ``@expr6 ]' + with: '``@expr1 or: [ | `@temp2 | ``@expr2 or: [ | `@temp3 | ``@expr3 or: [ | `@temp4 | ``@expr4 or: [ | `@temp5 | ``@expr5 or: [ | `@temp6 | ``@expr6 ] ] ] ] ]' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/name.st new file mode 100644 index 00000000..c1c48207 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Booleans' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/rationale.st new file mode 100644 index 00000000..b650ed54 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ '#and:and: and #or:or: are not ANSI compatible.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json new file mode 100644 index 00000000..208c1ba2 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiBooleansRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json new file mode 100644 index 00000000..d5fe699b --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiCharactersRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st new file mode 100644 index 00000000..0e3a239e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRReSlimeBlockLintRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st new file mode 100644 index 00000000..2d2913fb --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRReSlimeParseTreeLintRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st new file mode 100644 index 00000000..b84d2a50 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRReSlimeTransformationRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json new file mode 100644 index 00000000..eaa3dd3e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "ReNodeRewriteRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRReSlimeTransformationRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st index 8e2a8f69..58190464 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st @@ -4,5 +4,5 @@ rules ^ (OrderedCollection new addAll: GRReSlimeBlockLintRule allSubclasses; addAll: GRReSlimeParseTreeLintRule allSubclasses; -" addAll: GRSlimeTransformationRule allSubclasses;" + addAll: GRReSlimeTransformationRule allSubclasses; yourself) reject: #isAbstract \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st index 49b8b233..2bbd5df3 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/runTransformation.changes..st @@ -2,14 +2,14 @@ running-checks runTransformation: aClass changes: aCollection | expected | - expected := aCollection - collect: [ :each | RBParser parseMethod: each ]. - self run: aClass ignoring: Array new do: [ :rule :rules | - rule changes do: [ :change | + expected := aCollection collect: [ :each | RBParser parseMethod: each ]. + self run: aClass ignoring: Array new do: [ :critiques | | changes | + changes := critiques collect:[ :critique | critique change ]. + changes do: [ :change | self assert: (expected anySatisfy: [ :parseTree | change parseTree = parseTree ]) - description: change selector , ' should not be transformed' ]. + description: ('{1} should not be transformed' format: { change selector }) ]. expected do: [ :parseTree | self - assert: (rule changes anySatisfy: [ :change | change parseTree = parseTree ]) - description: parseTree selector , ' should be transformed' ] ] \ No newline at end of file + assert: (changes anySatisfy: [ :change | change parseTree = parseTree ]) + description: ('{1} should be transformed' format: { parseTree selector }) ] ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st index d4020fe4..fc3a5aee 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiBooleansRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiBooleansRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'and 1 and: [ 2 ] and: [ 3 ] and: [ 4 ]' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st index dbc22862..6c1b5b23 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st @@ -8,4 +8,4 @@ testReferencesNotPortableClass self compile: 'valid ^ GRObject new' in: class. self assertRule: GRReferencesNotPortableClassRule - matches: { class>>#invalid }. \ No newline at end of file + matches: { class>>#invalid } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st deleted file mode 100644 index d6358cc7..00000000 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUnnecessaryLastPeriodRule.st +++ /dev/null @@ -1,10 +0,0 @@ -tests-block -testUnnecessaryLastPeriodRule - - | class | - class := self defineSubClassOf: #GRObject. - self compile: 'invalid 1. 2.' in: class. - self compile: 'valid 1. 2' in: class. - self - assertRule: ReUnnecessaryLastPeriodRule - matches: { class>>#invalid } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st index 2df0cfed..5699c982 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st @@ -8,4 +8,4 @@ testUsesNotPortableClass self compile: 'valid ^ GRObject new' in: class. self assertRule: GRReferencesNotPortableClassRule - matches: { class>>#invalid }. \ No newline at end of file + matches: { class>>#invalid } \ No newline at end of file From 1ec525d02e3f36d1e69a5a5af66c5792b8516132 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 20:11:14 +0100 Subject: [PATCH 13/20] fix --- .../GRAnsiCharactersRule.class/instance/group.st | 4 ++++ .../instance/initialize.st | 13 +++++++++++++ .../GRAnsiCharactersRule.class/instance/name.st | 4 ++++ .../instance/rationale.st | 4 ++++ .../instance/testAnsiCharacterRule.st | 2 +- 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/rationale.st diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st new file mode 100644 index 00000000..85ad1c4c --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st @@ -0,0 +1,13 @@ +initialization +initialize + + super initialize. + self replace: 'Character value: ``@expr' with: 'Character codePoint: ``@expr' + "replace: '`#source to: `#target' + withValueFrom: [ :node | + RBLiteralNode value: (String streamContents: [ :stream | + node receiver value codePoint to: node arguments first value codePoint do: [ :code | + stream nextPut: (Character codePoint: code) ] ]) ] + when: [ :node | + node receiver value isCharacter + and: [ node arguments first value isCharacter ] ]" \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/name.st new file mode 100644 index 00000000..6ea7a32b --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Characters' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/rationale.st new file mode 100644 index 00000000..94cf8eb0 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Character value: 64 and $a to: $b is not ANSI compatible.' \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st index 3507a7e9..a7eaeecf 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCharacterRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiCharacterRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'character Character value: 123' in: class. From 59552a5f03c446a70170790f8a61b6c5a75204a9 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 20:35:37 +0100 Subject: [PATCH 14/20] Ported all transformation Slime rules --- .../GRAnsiCollectionsRule.class/README.md | 0 .../instance/group.st | 4 +++ .../instance/initialize.st | 30 +++++++++++++++++++ .../instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../properties.json | 11 +++++++ .../GRAnsiConditionalsRule.class/README.md | 0 .../instance/group.st | 4 +++ .../instance/initialize.st | 17 +++++++++++ .../instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../properties.json | 11 +++++++ .../GRAnsiConvertorRule.class/README.md | 0 .../instance/group.st | 4 +++ .../instance/initialize.st | 7 +++++ .../instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../GRAnsiConvertorRule.class/properties.json | 11 +++++++ .../GRAnsiExceptionsRule.class/README.md | 0 .../instance/group.st | 4 +++ .../instance/initialize.st | 7 +++++ .../instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../properties.json | 11 +++++++ .../GRAnsiStreamsRule.class/README.md | 0 .../GRAnsiStreamsRule.class/instance/group.st | 4 +++ .../instance/initialize.st | 13 ++++++++ .../GRAnsiStreamsRule.class/instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../GRAnsiStreamsRule.class/properties.json | 11 +++++++ .../GRAnsiStringsRule.class/README.md | 0 .../GRAnsiStringsRule.class/instance/group.st | 4 +++ .../instance/initialize.st | 25 ++++++++++++++++ .../GRAnsiStringsRule.class/instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../GRAnsiStringsRule.class/properties.json | 11 +++++++ .../README.md | 0 .../instance/group.st | 4 +++ .../instance/initialize.st | 9 ++++++ .../instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../properties.json | 11 +++++++ .../GRObjectInRule.class/README.md | 1 + .../GRObjectInRule.class/instance/group.st | 4 +++ .../instance/initialize.st | 7 +++++ .../GRObjectInRule.class/instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../GRObjectInRule.class/properties.json | 11 +++++++ .../GRTestAssertionsRule.class/README.md | 1 + .../instance/afterCheck.mappings..st | 8 +++++ .../instance/checkMethod..st | 7 +++++ .../instance/group.st | 4 +++ .../instance/initialize.st | 7 +++++ .../instance/name.st | 4 +++ .../instance/rationale.st | 4 +++ .../properties.json | 11 +++++++ .../instance/testAnsiCollectionsRule.st | 2 +- .../instance/testAnsiConditionalsRule.st | 2 +- .../instance/testAnsiConvertorRule.st | 2 +- .../instance/testAnsiExceptionsRule.st | 2 +- .../instance/testAnsiStreamsRule.st | 2 +- .../instance/testAnsiStringsRule.st | 2 +- .../testNotPortableCollectionsRule.st | 2 +- .../instance/testObjectIn.st | 2 +- .../instance/testTestCaseFailRule.st | 2 +- .../instance/testTestCaseFailRule2.st | 9 ++++++ 66 files changed, 364 insertions(+), 9 deletions(-) create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/README.md create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/afterCheck.mappings..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/group.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/initialize.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/name.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/rationale.st create mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule2.st diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/initialize.st new file mode 100644 index 00000000..86c772ea --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/initialize.st @@ -0,0 +1,30 @@ +initialization +initialize + super initialize. + self + replace: '``@collection withIndexDo: [ :`each :`index | | `@temps | ``@.body ]' + with: '``@collection keysAndValuesDo: [ :`index :`each | | `@temps | ``@.body ]'; + replace: '``@collection doWithIndex: [ :`each :`index | | `@temps | ``@.body ]' + with: '``@collection keysAndValuesDo: [ :`index :`each | | `@temps | ``@.body ]'; + replace: '``@collection collect: ``@block1 thenDo: ``@block2' + with: '(``@collection collect: ``@block1) do: ``@block2'; + replace: '``@collection collect: ``@block1 thenSelect: ``@block2' + with: '(``@collection collect: ``@block1) select: ``@block2'; + replace: '``@collection pairsDo: [ :`t1 :`t2 | ``@.statements ]' + with: '1 to: ``@collection size by: 2 do: [ :index | | `t1 `t2 | `t1 := ``@collection at: index. `t2 := ``@collection at: index + 1. ``@.statements ]'; + replace: '``@collection reject: ``@block1 thenDo: ``@block2' + with: '(``@collection reject: ``@block1) do: ``@block2'; + replace: '``@collection select: ``@block1 thenCollect: ``@block2' + with: '(``@collection select: ``@block1) collect: ``@block2'; + replace: '``@collection select: ``@block1 thenDo: ``@block2' + with: '(``@collection select: ``@block1) do: ``@block2'; + replace: '``@collection detectSum: [ :`t1 | ``@.statements. `.last ]' + with: '``@collection inject: 0 into: [ :sum :`t1 | ``@.statements. sum + (`.last) ]'; + replace: '``@collection valuesDo: ``@block' + with: '``@collection do: ``@block'; + replace: '``@collection reversed' + with: '``@collection reverse'; + replace: '``@dictionary keysSortedSafely' + with: '``@dictionary keys asSortedCollection'; + replace: '``@collectionClass new: ``@size withAll: ``@character' + with: '(``@collectionClass new: ``@size) atAllPut: ``@character' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/name.st new file mode 100644 index 00000000..a318a869 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Collections' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/rationale.st new file mode 100644 index 00000000..5929ea0d --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Some collection methods are not ANSI compatible: #pairsDo:, #collect:thenDo:, #reject:thenDo:, #detectSum:, #valuesDo:, #keysSortedSafely, #new:withAll:, etc.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json new file mode 100644 index 00000000..b6b9f5c5 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiCollectionsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/initialize.st new file mode 100644 index 00000000..962d59d3 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/initialize.st @@ -0,0 +1,17 @@ +initialization +initialize + + super initialize. + self + replace: '``@boolean ifNotNilDo: ``@block' + with: '``@boolean ifNotNil: ``@block'; + replace: '``@boolean ifNotNilDo: ``@block1 ifNil: ``@block2' + with: '``@boolean ifNotNil: ``@block1 ifNil: ``@block2'; + replace: '``@boolean ifNil: ``@block1 ifNotNilDo: ``@block2' + with: '``@boolean ifNil: ``@block1 ifNotNil: ``@block2'; + replace: '``@boolean ifNotNil: [ | `@temps | ``@.body ]' + with: '``@boolean ifNotNil: [ :arg | | `@temps | ``@.body ]'; + replace: '``@boolean ifNotNil: [ | `@temps | ``@.body ] ifNil: ``@block ' + with: '``@boolean ifNotNil: [ :arg | | `@temps | ``@.body ] ifNil: ``@block'; + replace: '``@boolean ifNil: ``@block ifNotNil: [ | `@temps | ``@.body ]' + with: '``@boolean ifNil: ``@block ifNotNil: [ :arg | | `@temps | ``@.body ]' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/name.st new file mode 100644 index 00000000..76482a4a --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Conditionals' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/rationale.st new file mode 100644 index 00000000..a60d109e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Conditionals like #ifNotNilDo: are not ANSI compatible.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json new file mode 100644 index 00000000..c9539d38 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiConditionalsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/initialize.st new file mode 100644 index 00000000..4867fd82 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/initialize.st @@ -0,0 +1,7 @@ +initialization +initialize + + super initialize. + self + replace: '``@object asString' with: '``@object greaseString'; + replace: '``@object asInteger' with: '``@object greaseInteger' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/name.st new file mode 100644 index 00000000..14c21187 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Convertors' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/rationale.st new file mode 100644 index 00000000..806fe5ac --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'The ANSI standard does not support #asInteger and #asString on Object.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json new file mode 100644 index 00000000..0e6e4cb4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiConvertorRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/initialize.st new file mode 100644 index 00000000..a06d318e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/initialize.st @@ -0,0 +1,7 @@ +initialization +initialize + + super initialize. + self + replace: '``@block on: `class do: [ | `@temps | ``@.body ]' + with: '``@block on: `class do: [ :err | | `@temps | ``@.body ]' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/name.st new file mode 100644 index 00000000..6d5286e6 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Exceptions' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/rationale.st new file mode 100644 index 00000000..7ec36da6 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Exception handlers expect exactly one argument in ANSI.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json new file mode 100644 index 00000000..51375683 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiExceptionsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/initialize.st new file mode 100644 index 00000000..1b87d4ea --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/initialize.st @@ -0,0 +1,13 @@ +initialization +initialize + + super initialize. + self + replace: '`{ :node :context | node isVariable and: [ (Smalltalk includesKey: node name asSymbol) not and: [ context at: ''`receiver'' ifAbsentPut: [ node ]. true ] ] } cr' + with: '`{ :context | context at: ''`receiver'' } nextPut: Character cr'; + replace: '`{ :node :context | node isVariable and: [ (Smalltalk includesKey: node name asSymbol) not and: [ context at: ''`receiver'' ifAbsentPut: [ node ]. true ] ] } lf' + with: '`{ :context | context at: ''`receiver'' } nextPut: Character lf'; + replace: '``@stream nextPut: Character cr; nextPut: Character lf' + with: '``@stream crlf'; + replace: '``@collection writeStream' + with: 'WriteStream on: ``@collection' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/name.st new file mode 100644 index 00000000..50e44acb --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Streams' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/rationale.st new file mode 100644 index 00000000..3d05fb7c --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ '#cr and #lf are not part of the ANSI stream protocol.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json new file mode 100644 index 00000000..2539d9c8 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiStreamsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/group.st new file mode 100644 index 00000000..f34a290f --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'ANSI Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st new file mode 100644 index 00000000..ae23d568 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st @@ -0,0 +1,25 @@ +initialization +initialize + + super initialize. + self + replace: 'String tab' with: '(String with: Character tab)'; + replace: 'String cr' with: '(String with: Character cr)'; + replace: 'String lf' with: '(String with: Character lf)'; + replace: 'String crlf' with: '(String with: Character cr with: Character lf)'; + replace: 'String space' with: '(String with: Character space)'; + replace: '`@string includesSubString: `@subString' + with: '(`@string indexOfSubCollection: `@subString startingAt: 0) ~= 0'; + replace: '`@string includesSubstring: `@subString' + with: '(`@string indexOfSubCollection: `@subString startingAt: 0) ~= 0' + "replace: '``@string findTokens: ``@arg' withValueFrom: [ :node | + | argument | + argument := node arguments first. + argument isLiteralNode ifTrue: [ + argument value isArray + ifTrue: [ argument replaceWith: (RBLiteralNode value: (String withAll: argument value)) ]. + argument value isCharacter + ifTrue: [ argument replaceWith: (RBLiteralNode value: (String with: argument value)) ] ]. + node + selector: #subStrings:; + yourself ]" \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/name.st new file mode 100644 index 00000000..31e016a6 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Strings' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/rationale.st new file mode 100644 index 00000000..84577e32 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ '#cr, #crlf, #lf, #space, #tab, #findTokens:, ... are not part of the ANSI string protocol.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json new file mode 100644 index 00000000..f544f2e7 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRAnsiStringsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/initialize.st new file mode 100644 index 00000000..5e8d416d --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/initialize.st @@ -0,0 +1,9 @@ +initialization +initialize + + super initialize. + self + replace: '`@collection beginsWith: `@subCollection' + with: '`@collection greaseBeginsWith: `@subCollection'; + replace: '`@collection endsWith: `@subCollection' + with: '`@collection greaseEndsWith: `@subCollection' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/name.st new file mode 100644 index 00000000..a318a869 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Collections' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/rationale.st new file mode 100644 index 00000000..df5a43be --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ '#beginsWith: and #endsWith: are not portable.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json new file mode 100644 index 00000000..2a5a777c --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRNotPortableCollectionsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/README.md new file mode 100644 index 00000000..bca4d093 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/README.md @@ -0,0 +1 @@ +I detect senders of Object >> #in: diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/group.st new file mode 100644 index 00000000..b4981dc4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'Grease Portability' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/initialize.st new file mode 100644 index 00000000..d51d0570 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/initialize.st @@ -0,0 +1,7 @@ +initialization +initialize + + super initialize. + self + replace: '``@object in: [ :`var | | `@temps | `@.statements ]' + with: '[ :`var | | `@temps | `@.statements ] value: ``@object' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/name.st new file mode 100644 index 00000000..914d48df --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'Object>>#in:' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/rationale.st new file mode 100644 index 00000000..944aa7c5 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'Object>>#in: has different semantics on different Smalltalk dialects.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json new file mode 100644 index 00000000..96ac6c53 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "pmm 9/12/2009 10:37", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRObjectInRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/README.md new file mode 100644 index 00000000..6f3d9062 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/README.md @@ -0,0 +1 @@ +I check for TestCase >> #fail. \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/afterCheck.mappings..st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/afterCheck.mappings..st new file mode 100644 index 00000000..874f1381 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/afterCheck.mappings..st @@ -0,0 +1,8 @@ +hooks +afterCheck: aNode mappings: mappingsDict + + aNode methodNode methodClass isMeta + ifTrue: [ ^ false ]. + (aNode methodNode methodClass allSuperclasses includes: (Smalltalk at: #TestCase)) + ifTrue: [ ^ true ]. + ^ false \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st new file mode 100644 index 00000000..bab892c3 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st @@ -0,0 +1,7 @@ +running +checkMethod: aContext + aContext methodClass isMeta + ifTrue: [ ^ self ]. + (aContext methodClass allSuperclasses includes:(Smalltalk at: #TestCase)) + ifFalse: [ ^ self ]. + ^ super checkMethod: aContext \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/group.st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/group.st new file mode 100644 index 00000000..eb721d8e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/group.st @@ -0,0 +1,4 @@ +accessing +group + + ^ 'SUnit Compatibility' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/initialize.st new file mode 100644 index 00000000..097ff5a1 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/initialize.st @@ -0,0 +1,7 @@ +initialization +initialize + + super initialize. + self + replace: 'self fail' + with: 'self assert: false' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/name.st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/name.st new file mode 100644 index 00000000..0dd472fc --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/name.st @@ -0,0 +1,4 @@ +accessing +name + + ^ 'TestCase >> #fail' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/rationale.st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/rationale.st new file mode 100644 index 00000000..4e358c3e --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/rationale.st @@ -0,0 +1,4 @@ +accessing +rationale + + ^ 'TestCase >> #fail is not portable.' \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json new file mode 100644 index 00000000..cd52efa5 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "pmm 8/17/2014 11:24", + "super" : "GRReSlimeTransformationRule", + "category" : "Grease-Pharo110-Slime", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "GRTestAssertionsRule", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st index d4cfdb9b..85726226 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiCollectionsRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiCollectionsRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'withIndexDo #() withIndexDo: [ :each :index | each + index ]' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st index 8d15ea35..cffcbfa7 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConditionalsRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiConditionalsRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'ifNotNil 1 ifNotNil: [ | a | self or. self and ]' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st index fd54043f..b29370e2 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiConvertorRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiConvertorRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'convertInteger ''1'' asInteger' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st index af061a7e..57b75a75 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiExceptionsRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiExceptionsRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'exception1 [ self or ] on: Error do: [ self or ]' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st index 6550cb75..7a8b3238 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStreamsRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiStreamsRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'writeStream ^ '''' writeStream' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st index 2b01a845..9e0aeb9e 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testAnsiStringsRule.st @@ -1,6 +1,6 @@ tests-transform testAnsiStringsRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'stringCr String cr, (String with: Character cr)' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st index 2e619cfa..ba64daef 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testNotPortableCollectionsRule.st @@ -1,6 +1,6 @@ tests-transform testNotPortableCollectionsRule - + | class | class := self defineSubClassOf: #GRObject. self compile: 'beginsWith1 ''abc'' beginsWith: ''a''' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st index dcd86cb1..5711be2a 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testObjectIn.st @@ -1,6 +1,6 @@ tests-transform testObjectIn - + | class | class := self defineSubClassOf: #GRObject. self compile: 'objectIn1 1 in: [ :val | val factorial ]' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st index ad803388..c4044a19 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st @@ -1,6 +1,6 @@ tests-transform testTestCaseFailRule - + | class | class := self defineSubClassOf: #TestCase. self compile: 'testMethod self fail' in: class. diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule2.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule2.st new file mode 100644 index 00000000..13e098a6 --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule2.st @@ -0,0 +1,9 @@ +tests-transform +testTestCaseFailRule2 + + | class | + class := self defineSubClassOf: #Object. + self compile: 'method self fail' in: class. + self + runTransformation: GRTestAssertionsRule + changes: #( ) \ No newline at end of file From 1031a70fafecf1119c381ed8167ad92e52797740 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 7 Jan 2024 20:46:06 +0100 Subject: [PATCH 15/20] Change class names back to previous class names (i.e. 'GRReXXX' to 'GRXXX') --- .../GRAnsiBooleansRule.class/properties.json | 2 +- .../GRAnsiCharactersRule.class/properties.json | 2 +- .../GRAnsiCollectionsRule.class/properties.json | 2 +- .../GRAnsiConditionalsRule.class/properties.json | 2 +- .../GRAnsiConvertorRule.class/properties.json | 2 +- .../GRAnsiExceptionsRule.class/properties.json | 2 +- .../GRAnsiStreamsRule.class/properties.json | 2 +- .../GRAnsiStringsRule.class/instance/initialize.st | 6 +++--- .../GRAnsiStringsRule.class/properties.json | 2 +- .../GRBasicNewInitializeMissingRule.class/properties.json | 2 +- .../GRDeprecatedApiProtocolRule.class/properties.json | 2 +- .../GRInvalidObjectInitializationRule.class/properties.json | 2 +- .../GRNonPortableMessageRule.class/properties.json | 2 +- .../GRNotPortableCollectionsRule.class/properties.json | 2 +- .../GRObjectInRule.class/properties.json | 2 +- .../GRReSlimeBlockLintRule.class/class/isVisible.st | 4 ---- .../GRReSlimeParseTreeLintRule.class/class/isVisible.st | 4 ---- .../GRReSlimeTransformationRule.class/class/isVisible.st | 4 ---- .../README.md | 0 .../GRSlimeBlockLintRule.class/class/isVisible.st | 4 ++++ .../properties.json | 2 +- .../README.md | 0 .../GRSlimeParseTreeLintRule.class/class/isVisible.st | 4 ++++ .../properties.json | 2 +- .../README.md | 0 .../GRSlimeTransformationRule.class/class/isVisible.st | 4 ++++ .../properties.json | 2 +- .../GRTestAssertionsRule.class/properties.json | 2 +- .../GRUsesCanPerformOrUnderstandRule.class/properties.json | 2 +- .../GRUsesClassForHashRule.class/properties.json | 2 +- .../GRUsesNotPortableClassRule.class/class/isAbstract.st | 2 +- .../GRUsesNotPortableClassRule.class/class/isVisible.st | 4 ++++ .../GRUsesNotPortableClassRule.class/properties.json | 2 +- .../GRReSlimeTest.class/instance/rules.st | 6 +++--- 34 files changed, 44 insertions(+), 40 deletions(-) delete mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st delete mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st delete mode 100644 repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st rename repository/Grease-Pharo110-Slime.package/{GRReSlimeBlockLintRule.class => GRSlimeBlockLintRule.class}/README.md (100%) create mode 100644 repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/class/isVisible.st rename repository/Grease-Pharo110-Slime.package/{GRReSlimeBlockLintRule.class => GRSlimeBlockLintRule.class}/properties.json (84%) rename repository/Grease-Pharo110-Slime.package/{GRReSlimeParseTreeLintRule.class => GRSlimeParseTreeLintRule.class}/README.md (100%) create mode 100644 repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/class/isVisible.st rename repository/Grease-Pharo110-Slime.package/{GRReSlimeParseTreeLintRule.class => GRSlimeParseTreeLintRule.class}/properties.json (82%) rename repository/Grease-Pharo110-Slime.package/{GRReSlimeTransformationRule.class => GRSlimeTransformationRule.class}/README.md (100%) create mode 100644 repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/class/isVisible.st rename repository/Grease-Pharo110-Slime.package/{GRReSlimeTransformationRule.class => GRSlimeTransformationRule.class}/properties.json (82%) create mode 100644 repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isVisible.st diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json index 208c1ba2..4cab4c2d 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiBooleansRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json index d5fe699b..2517609b 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json index b6b9f5c5..1261c334 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCollectionsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json index c9539d38..542f8001 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConditionalsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json index 0e6e4cb4..0069fdf8 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiConvertorRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json index 51375683..6bd99b1d 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiExceptionsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json index 2539d9c8..d367dbf7 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStreamsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st index ae23d568..07556e09 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st @@ -11,8 +11,8 @@ initialize replace: '`@string includesSubString: `@subString' with: '(`@string indexOfSubCollection: `@subString startingAt: 0) ~= 0'; replace: '`@string includesSubstring: `@subString' - with: '(`@string indexOfSubCollection: `@subString startingAt: 0) ~= 0' - "replace: '``@string findTokens: ``@arg' withValueFrom: [ :node | + with: '(`@string indexOfSubCollection: `@subString startingAt: 0) ~= 0'; + replace: '``@string findTokens: ``@arg' byEvaluating: [ :node | | argument | argument := node arguments first. argument isLiteralNode ifTrue: [ @@ -22,4 +22,4 @@ initialize ifTrue: [ argument replaceWith: (RBLiteralNode value: (String with: argument value)) ] ]. node selector: #subStrings:; - yourself ]" \ No newline at end of file + yourself ] \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json index f544f2e7..39506d7e 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json index 67a42ffc..e15fd361 100644 --- a/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRBasicNewInitializeMissingRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeBlockLintRule", + "super" : "GRSlimeBlockLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json index 87feb3c9..724ee707 100644 --- a/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRDeprecatedApiProtocolRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeParseTreeLintRule", + "super" : "GRSlimeParseTreeLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json index 4cbd7077..37adfef6 100644 --- a/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRInvalidObjectInitializationRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeBlockLintRule", + "super" : "GRSlimeBlockLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json index 95a60d91..e1e9857f 100644 --- a/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRNonPortableMessageRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeBlockLintRule", + "super" : "GRSlimeBlockLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json index 2a5a777c..33f1f490 100644 --- a/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRNotPortableCollectionsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json index 96ac6c53..c4168e75 100644 --- a/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRObjectInRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "pmm 9/12/2009 10:37", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st deleted file mode 100644 index 0e3a239e..00000000 --- a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/class/isVisible.st +++ /dev/null @@ -1,4 +0,0 @@ -testing -isVisible - - ^ self name ~= #GRReSlimeBlockLintRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st deleted file mode 100644 index 2d2913fb..00000000 --- a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/class/isVisible.st +++ /dev/null @@ -1,4 +0,0 @@ -testing -isVisible - - ^ self name ~= #GRReSlimeParseTreeLintRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st deleted file mode 100644 index b84d2a50..00000000 --- a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/class/isVisible.st +++ /dev/null @@ -1,4 +0,0 @@ -testing -isVisible - - ^ self name ~= #GRReSlimeTransformationRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/README.md similarity index 100% rename from repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/README.md rename to repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/README.md diff --git a/repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/class/isVisible.st new file mode 100644 index 00000000..116356fd --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRSlimeBlockLintRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/properties.json similarity index 84% rename from repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json rename to repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/properties.json index 23226a97..e1389bfa 100644 --- a/repository/Grease-Pharo110-Slime.package/GRReSlimeBlockLintRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRSlimeBlockLintRule.class/properties.json @@ -6,6 +6,6 @@ "pools" : [ ], "classvars" : [ ], "instvars" : [ ], - "name" : "GRReSlimeBlockLintRule", + "name" : "GRSlimeBlockLintRule", "type" : "normal" } \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/README.md similarity index 100% rename from repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/README.md rename to repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/README.md diff --git a/repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/class/isVisible.st new file mode 100644 index 00000000..5d72890a --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRSlimeParseTreeLintRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/properties.json similarity index 82% rename from repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json rename to repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/properties.json index e5d01d93..28ab8124 100644 --- a/repository/Grease-Pharo110-Slime.package/GRReSlimeParseTreeLintRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRSlimeParseTreeLintRule.class/properties.json @@ -6,6 +6,6 @@ "pools" : [ ], "classvars" : [ ], "instvars" : [ ], - "name" : "GRReSlimeParseTreeLintRule", + "name" : "GRSlimeParseTreeLintRule", "type" : "normal" } \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/README.md b/repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/README.md similarity index 100% rename from repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/README.md rename to repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/README.md diff --git a/repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/class/isVisible.st new file mode 100644 index 00000000..b60e68d4 --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRSlimeTransformationRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/properties.json similarity index 82% rename from repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json rename to repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/properties.json index eaa3dd3e..df276035 100644 --- a/repository/Grease-Pharo110-Slime.package/GRReSlimeTransformationRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRSlimeTransformationRule.class/properties.json @@ -6,6 +6,6 @@ "pools" : [ ], "classvars" : [ ], "instvars" : [ ], - "name" : "GRReSlimeTransformationRule", + "name" : "GRSlimeTransformationRule", "type" : "normal" } \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json index cd52efa5..572f670a 100644 --- a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "pmm 8/17/2014 11:24", - "super" : "GRReSlimeTransformationRule", + "super" : "GRSlimeTransformationRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json index 70456891..a30a05da 100644 --- a/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRUsesCanPerformOrUnderstandRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeParseTreeLintRule", + "super" : "GRSlimeParseTreeLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json index c679f3eb..063aef8f 100644 --- a/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRUsesClassForHashRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeParseTreeLintRule", + "super" : "GRSlimeParseTreeLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st index 99dcbb1f..7d1d20cc 100644 --- a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isAbstract.st @@ -1,4 +1,4 @@ testing isAbstract - ^ self == GRUsesNotPortableClassRule \ No newline at end of file + ^ self name = #GRUsesNotPortableClassRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isVisible.st b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isVisible.st new file mode 100644 index 00000000..680a15af --- /dev/null +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/class/isVisible.st @@ -0,0 +1,4 @@ +testing +isVisible + + ^ self name ~= #GRUsesNotPortableClassRule \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json index 2965264e..128f88b8 100644 --- a/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json +++ b/repository/Grease-Pharo110-Slime.package/GRUsesNotPortableClassRule.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "", - "super" : "GRReSlimeBlockLintRule", + "super" : "GRSlimeBlockLintRule", "category" : "Grease-Pharo110-Slime", "classinstvars" : [ ], "pools" : [ ], diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st index 58190464..a7984364 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/rules.st @@ -2,7 +2,7 @@ running rules ^ (OrderedCollection new - addAll: GRReSlimeBlockLintRule allSubclasses; - addAll: GRReSlimeParseTreeLintRule allSubclasses; - addAll: GRReSlimeTransformationRule allSubclasses; + addAll: GRSlimeBlockLintRule allSubclasses; + addAll: GRSlimeParseTreeLintRule allSubclasses; + addAll: GRSlimeTransformationRule allSubclasses; yourself) reject: #isAbstract \ No newline at end of file From bfea7eadc9109ac5a85f3135a2f05c24b652eccb Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sat, 13 Jan 2024 14:20:16 +0100 Subject: [PATCH 16/20] Fix ANSI characters Slime rule --- .../instance/initialize.st | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st index 85ad1c4c..ea3f6e73 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiCharactersRule.class/instance/initialize.st @@ -2,12 +2,15 @@ initialization initialize super initialize. - self replace: 'Character value: ``@expr' with: 'Character codePoint: ``@expr' - "replace: '`#source to: `#target' - withValueFrom: [ :node | - RBLiteralNode value: (String streamContents: [ :stream | - node receiver value codePoint to: node arguments first value codePoint do: [ :code | - stream nextPut: (Character codePoint: code) ] ]) ] - when: [ :node | - node receiver value isCharacter - and: [ node arguments first value isCharacter ] ]" \ No newline at end of file + self + replace: 'Character value: ``@expr' + with: 'Character codePoint: ``@expr'. + self + replace: '`#source to: `#target' + byEvaluating: [ :node | + (node receiver value isCharacter and: [ + node arguments first value isCharacter ]) + ifTrue: [ + RBLiteralNode value: (String streamContents: [ :stream | + node receiver value codePoint to: node arguments first value codePoint do: [ :code | stream nextPut: (Character codePoint: code) ] ]) ] + ifFalse: [ node ] ] \ No newline at end of file From 499065208853879664fe6601d2dae958fa7c41d3 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sat, 13 Jan 2024 15:31:34 +0100 Subject: [PATCH 17/20] Fix ANSIStrings Slime rule --- .../GRAnsiStringsRule.class/instance/initialize.st | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st index 07556e09..702a9ad0 100644 --- a/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st +++ b/repository/Grease-Pharo110-Slime.package/GRAnsiStringsRule.class/instance/initialize.st @@ -13,13 +13,14 @@ initialize replace: '`@string includesSubstring: `@subString' with: '(`@string indexOfSubCollection: `@subString startingAt: 0) ~= 0'; replace: '``@string findTokens: ``@arg' byEvaluating: [ :node | - | argument | - argument := node arguments first. + | argument newNode | + newNode := node copy. + argument := newNode arguments first. argument isLiteralNode ifTrue: [ argument value isArray ifTrue: [ argument replaceWith: (RBLiteralNode value: (String withAll: argument value)) ]. argument value isCharacter ifTrue: [ argument replaceWith: (RBLiteralNode value: (String with: argument value)) ] ]. - node + newNode selector: #subStrings:; yourself ] \ No newline at end of file From 8f6c9b8496a41401d6b93c882f89e7c4a81f7ebc Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 14 Jan 2024 09:51:21 +0100 Subject: [PATCH 18/20] test with smalltalkCI fork for Pharo12 fix --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e7286ca..c009f691 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,6 +21,7 @@ jobs: - uses: actions/checkout@v3 - uses: hpi-swa/setup-smalltalkCI@v1 with: + smalltalkCI-source: 'jbrichau/smalltalkCI' smalltalk-image: ${{ matrix.smalltalk }} - name: Run tests run: smalltalkci -s ${{ matrix.smalltalk }} From 52ba23426e0c4551ff18ccfab9314c0da75f1061 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 14 Jan 2024 09:55:41 +0100 Subject: [PATCH 19/20] try again to run against smalltalk-CI branch --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c009f691..2fc95e74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,7 @@ jobs: - uses: hpi-swa/setup-smalltalkCI@v1 with: smalltalkCI-source: 'jbrichau/smalltalkCI' + smalltalkCI-branch: 'master' smalltalk-image: ${{ matrix.smalltalk }} - name: Run tests run: smalltalkci -s ${{ matrix.smalltalk }} From 4e5cec20ea8b69f8b72acc8c9e8897d3e090a1ff Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 14 Jan 2024 11:05:16 +0100 Subject: [PATCH 20/20] try new fix branch for SmalltalkCI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fc95e74..2b33d50d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: - uses: hpi-swa/setup-smalltalkCI@v1 with: smalltalkCI-source: 'jbrichau/smalltalkCI' - smalltalkCI-branch: 'master' + smalltalkCI-branch: 'fix-issue-623' smalltalk-image: ${{ matrix.smalltalk }} - name: Run tests run: smalltalkci -s ${{ matrix.smalltalk }}