Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1121.mcz ==================== Summary ==================== Name: System-mt.1121 Author: mt Time: 18 November 2019, 2:11:39.331051 pm UUID: 123c20e2-fc1d-124a-af13-7b41a75bcab3 Ancestors: System-mt.1120 Adds #asSimpleGetter and #isSimpleGetter. Harmonize implementations considering #asSimpleSetter and #isSimpleSetter. See: http://forum.world.st/The-Inbox-Collections-ct-853-mcz-td5104261.html I hope I did not mess up any performance considerations... =============== Diff against System-mt.1120 =============== Item was added: + ----- Method: String>>asSimpleGetter (in category '*System-Support') ----- + asSimpleGetter + "Return a getter message from a setter message. For example, #name: asSimpleGetter returns #name" + + self size > 0 ifTrue: [ + self last = $: + ifTrue: [ self numArgs = 1 ifTrue: [ ^ self allButLast asSymbol ] ] + ifFalse: [ self numArgs = 0 ifTrue: [ ^ self asSymbol ] ] ]. + + self error: 'Only simple setters and getters can be converted to simple getters!!'.! Item was changed: ----- Method: String>>asSimpleSetter (in category '*System-Support') ----- asSimpleSetter + "Return a setter message from a getter message. For example, #name asSimpleSetter returns #name:" + + self size > 0 ifTrue: [ + self last = $: + ifTrue: [ self numArgs = 1 ifTrue: [ ^ self asSymbol ] ] + ifFalse: [ self numArgs = 0 ifTrue: [ ^ (self copyWith: $:) asSymbol ] ] ]. + + self error: 'Only simple setters and getters can be converted to simple setters!!'.! - "Return a setter message from a getter message. For example, #name asMutator returns #name:" - ^ self last = $: - ifTrue: [ self asSymbol ] - ifFalse: [ (self copyWith: $:) asSymbol ]! Item was added: + ----- Method: String>>isSimpleGetter (in category '*System-Support') ----- + isSimpleGetter + "Only symbols can be simple getters." + + ^ false! Item was changed: ----- Method: String>>isSimpleSetter (in category '*System-Support') ----- isSimpleSetter + "Only symbols can be simple setters." + ^ false! - ^ self isKeyword and: [self numArgs = 1]! Item was added: + ----- Method: Symbol>>asSimpleGetter (in category '*System-Support') ----- + asSimpleGetter + + self precedence + caseOf: { + [ 1 ] -> [ self numArgs = 0 ifTrue: [ ^ self ] ]. + [ 3 ] -> [ self numArgs = 1 ifTrue: [ ^ self allButLast asSymbol ] ] } + otherwise: []. + + self error: 'Only simple setters and getters can be converted to simple getters!!'.! Item was changed: ----- Method: Symbol>>asSimpleSetter (in category '*System-Support') ----- asSimpleSetter + self precedence + caseOf: { + [ 1 ] -> [ self numArgs = 0 ifTrue: [ ^ (self copyWith: $:) asSymbol ] ]. + [ 3 ] -> [ self numArgs = 1 ifTrue: [ ^ self ] ] } + otherwise: []. + + self error: 'Only simple setters and getters can be converted to simple setters!!'.! - ^ self last = $: - ifTrue: [ self ] - ifFalse: [ (self copyWith: $:) asSymbol ]! Item was added: + ----- Method: Symbol>>isSimpleGetter (in category '*System-Support') ----- + isSimpleGetter + + ^ self precedence = 1! Item was added: + ----- Method: Symbol>>isSimpleSetter (in category '*System-Support') ----- + isSimpleSetter + + ^ self isKeyword and: [self numArgs = 1]! |
Free forum by Nabble | Edit this page |