[squeak-dev] The Inbox: System-jr.919.mcz

Jakob Reschke jakob.reschke at student.hpi.de
Tue Apr 11 16:56:19 UTC 2017


May anybody review this, please? Without this (or another fix) we
cannot reliably store trait comments with FileTree/Cypress. We have to
revert the comment removals all the time with Git.

Best,
Jakob

2017-02-12 16:52 GMT+01:00 commits at source.squeak.org
<commits at source.squeak.org>:
> A new version of System was added to project The Inbox:
> http://source.squeak.org/inbox/System-jr.919.mcz
>
> ==================== Summary ====================
>
> Name: System-jr.919
> Author: jr
> Time: 12 February 2017, 4:10:59.703498 pm
> UUID: 95683f1a-e60c-fe4e-a86a-62cc5b00a151
> Ancestors: System-cmm.918
>
> add PseudoTrait and support for it in FilePackage
>
> main objective is to let Monticello read Trait comments from the st snapshot, which does not work when the trait definition is only treated as a doIt
>
> =============== Diff against System-cmm.918 ===============
>
> Item was changed:
>   ----- Method: FilePackage>>doIt: (in category 'change record types') -----
>   doIt: chgRec
>         | string |
>         string := chgRec string.
>         ('*ubclass:*instanceVariableNames:*classVariableNames:*poolDictionaries:*category:*'
>                 match: string) ifTrue:[^self classDefinition: string with: chgRec].
> +       ('*named:*uses:*category:*'
> +               match: string) ifTrue:["Trait" ^ self traitDefinition: string with: chgRec].
>         ('* class*instanceVariableNames:*'
>                 match: string) ifTrue:[^self metaClassDefinition: string with: chgRec].
>         ('* removeSelector: *'
>                 match: string) ifTrue:[^self removedMethod: string with: chgRec].
>         ('* comment:*'
>                 match: string) ifTrue:[^self msgClassComment: string with: chgRec].
>         ('* initialize'
>                 match: string) ifTrue:[^self]. "Initialization is done based on class>>initialize"
>         ('''From *'
>                 match: string) ifTrue:[^self possibleSystemSource: chgRec].
>         doIts add: chgRec.!
>
> Item was added:
> + ----- Method: FilePackage>>getBehavior:factory: (in category 'private') -----
> + getBehavior: name factory: pseudoBehaviorFactory
> +       | pseudoBehavior |
> +       (classes includesKey: name) ifTrue:[
> +               ^classes at: name.
> +       ].
> +       pseudoBehavior := pseudoBehaviorFactory new.
> +       pseudoBehavior name: name.
> +       classes at: name put: pseudoBehavior.
> +       ^pseudoBehavior.!
>
> Item was changed:
>   ----- Method: FilePackage>>getClass: (in category 'private') -----
>   getClass: className
> +       ^ self getBehavior: className factory: PseudoClass!
> -       | pseudoClass |
> -       (classes includesKey: className) ifTrue:[
> -               ^classes at: className.
> -       ].
> -       pseudoClass := PseudoClass new.
> -       pseudoClass name: className.
> -       classes at: className put: pseudoClass.
> -       ^pseudoClass.!
>
> Item was added:
> + ----- Method: FilePackage>>getTrait: (in category 'private') -----
> + getTrait: traitName
> +       ^ self getBehavior: traitName factory: PseudoTrait!
>
> Item was added:
> + PseudoClass subclass: #PseudoTrait
> +       instanceVariableNames: ''
> +       classVariableNames: ''
> +       poolDictionaries: ''
> +       category: 'System-FilePackage'!
> +
> + !PseudoTrait commentStamp: 'jr 2/12/2017 15:50' prior: 0!
> + Like a PseudoClass, but standing in for a Trait. Works identically to PseudoClass otherwise.!
>
> Item was added:
> + ----- Method: PseudoTrait>>isTrait (in category 'testing') -----
> + isTrait
> +       ^ true!
>
>


More information about the Squeak-dev mailing list