Skip to content

RBMoveMethodToClassTransformation is bogus #17959

Open
@Ducasse

Description

@Ducasse
privateTransform
	| oldClass newClass rbMethod originalProtocol |
	oldClass := self classModelOf: method methodClass.
	newClass := self classModelOf: class.
	rbMethod := model rbMethodClass for: newClass source: method sourceCode selector: method selector.
	originalProtocol := method protocolName.

	self generateChangesFor: (RBRemoveMethodTransformation 
		selector: method selector
		from: oldClass).
	self generateChangesFor: (RBAddMethodTransformation
		model: self model
		sourceCode: rbMethod
		in: newClass
		withProtocol: originalProtocol)

the code passes a method instead of the source code

Clearly some tests are missing.

The solution should be something like:

privateTransform
	| oldClass newClass rbMethod originalProtocol |
	oldClass := self classModelOf: method methodClass.
	newClass := self classModelOf: class.

	self generateChangesFor: (RBRemoveMethodTransformation 
		selector: method selector
		from: oldClass).
	self generateChangesFor: (RBAddMethodTransformation
		model: self model
		sourceCode: method sourceCode
		in: newClass
		withProtocol: method protocolName)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

For Later (kind of Backlog)

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions