A question arose in Discord regarding #basicNew, to which I felt like the
proper answer should be
that #basicNew is used only** from the class-side when making custom
initializers.
(**excepting special meta-handling like by Behaviour)

This philosophy is somewhat supported by...
(#basicNew senders select: [:sender | sender methodClass isMeta]) count
==> 264

but there are also counter examples...
(#basicNew senders select: [:sender | sender methodClass isMeta] not) count
==> 76.

like these...
Example1 -- DAPackageRelationGraph>>addMessageSendDependencies: aPackage
analyser := DAMessageSendAnalyzer basicNew initializeWith: aPackage;
yourself.

Example 2 -- FreeTypeFontProvider>>#updateFromFile: aFile
      face := FreeTypeFace basicNew fileContentsExternalMemory: externalMem
.

Example 3 -- HandMorph>>#moveToEvent: anEvent
  self handleEvent: (MouseMoveEvent basicNew
  setType: #mouseMove
  startPoint: self position
  endPoint: anEvent position
  trail: (Array with: self position with: anEvent position)
  buttons: anEvent buttons
  hand: self
  stamp: anEvent timeStamp)

Should we be pushing these sort of basicNew + instance-side-method-call
to the class side?   Or do I have the wrong end of the stick?

cheers -ben

Reply via email to