Browse Source

Recompile a method moved to protocol. Fix #1142.

Herbert Vojčík 7 years ago
parent
commit
2c7414b818
2 changed files with 8 additions and 3 deletions
  1. 3 2
      src/Platform-Services.js
  2. 5 1
      src/Platform-Services.st

+ 3 - 2
src/Platform-Services.js

@@ -878,6 +878,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 $recv(aMethod)._protocol_(aProtocol);
+$recv($recv(aMethod)._methodClass())._compile_protocol_($recv(aMethod)._source(),$recv(aMethod)._protocol());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"moveMethod:toProtocol:",{aMethod:aMethod,aProtocol:aProtocol},$globals.Environment)});
@@ -885,10 +886,10 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aMethod", "aProtocol"],
-source: "moveMethod: aMethod toProtocol: aProtocol\x0a\x09aMethod protocol: aProtocol",
+source: "moveMethod: aMethod toProtocol: aProtocol\x0a\x09aMethod protocol: aProtocol.\x0a\x0a\x09aMethod methodClass\x0a\x09\x09compile: aMethod source\x0a\x09\x09protocol: aMethod protocol",
 referencedClasses: [],
 //>>excludeEnd("ide");
-messageSends: ["protocol:"]
+messageSends: ["protocol:", "compile:protocol:", "methodClass", "source", "protocol"]
 }),
 $globals.Environment);
 

+ 5 - 1
src/Platform-Services.st

@@ -179,7 +179,11 @@ moveMethod: aMethod toClass: aClassName
 !
 
 moveMethod: aMethod toProtocol: aProtocol
-	aMethod protocol: aProtocol
+	aMethod protocol: aProtocol.
+
+	aMethod methodClass
+		compile: aMethod source
+		protocol: aMethod protocol
 !
 
 removeClass: aClass