From d9471372e3668d1c41c7d582b29f803dd6ee7943 Mon Sep 17 00:00:00 2001 From: Jakob Reschke Date: Mon, 8 Aug 2022 19:33:25 +0200 Subject: [PATCH] Fix: there is not always an MCClassTraitDefinition in a package for every trait For example, my FileSystem-Git package only has a MCClassTraitDefinition for TGitActiveUnitOfWorkDuringTest, but not for TGitVisitor. A difference is that TGitActiveUnitOfWorkDuringTest itself uses another trait, and that also affects the class trait composition of TGitActiveUnitOfWorkDuringTest. TGitVisitor does not use another thread, and its class trait composition is empty. Apparently that is not worth a class trait definition... --- .../SquotCypressCodeSerializer.class/instance/writeDiff..st | 5 +++-- .../SquotCypressCodeSerializer.class/methodProperties.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Squot.package/SquotCypressCodeSerializer.class/instance/writeDiff..st b/src/Squot.package/SquotCypressCodeSerializer.class/instance/writeDiff..st index de351b7a7..04c0502bf 100644 --- a/src/Squot.package/SquotCypressCodeSerializer.class/instance/writeDiff..st +++ b/src/Squot.package/SquotCypressCodeSerializer.class/instance/writeDiff..st @@ -53,8 +53,9 @@ writeDiff: aSquotArtifactDiff [classTrait := classTraits at: each className. (newDefinitions includes: classTrait) ifFalse: [missingClassTraits add: classTrait]]]. (missingClassifiers select: [:each | each isTraitDefinition]) - do: [:each | | classTrait | classTrait := classTraits at: each className. - (newDefinitions includes: classTrait) ifFalse: [missingClassTraits add: classTrait]]. + do: [:each | | classTrait | classTrait := classTraits at: each className ifAbsent: []. + (classTrait notNil and: [(newDefinitions includes: classTrait) not]) + ifTrue: [missingClassTraits add: classTrait]]. cypressWriter writeDefinitions: newDefinitions, missingClassifiers, missingClassTraits. "Fix up methodProperties.json files (they now only include the methods that were newly written)." allMethods := (newDefinitions select: [:each | each isMethodDefinition]) collect: [:each | each description -> each] as: Dictionary. diff --git a/src/Squot.package/SquotCypressCodeSerializer.class/methodProperties.json b/src/Squot.package/SquotCypressCodeSerializer.class/methodProperties.json index b15526245..03350bdba 100644 --- a/src/Squot.package/SquotCypressCodeSerializer.class/methodProperties.json +++ b/src/Squot.package/SquotCypressCodeSerializer.class/methodProperties.json @@ -22,7 +22,7 @@ "write:" : "jr 5/9/2017 18:24", "writeClass:" : "jr 9/3/2020 22:48", "writeDefinitions:" : "jr 1/29/2017 21:08", - "writeDiff:" : "jr 8/7/2022 23:33", + "writeDiff:" : "jr 8/8/2022 19:29", "writeMCSnapshot:forPackageNamed:from:" : "jr 3/16/2019 23:35", "writePackage:" : "jr 9/3/2020 22:47", "writePropertiesIfExists" : "jr 9/3/2020 22:47" } }