Przeglądaj źródła

Compiler: Different aliasing of assignment and cascade.

Herby Vojčík 4 lat temu
rodzic
commit
d19dae7e44

+ 9 - 36
lang/src/Compiler-IR.js

@@ -5816,41 +5816,19 @@ $globals.ASTNode);
 
 $core.addMethod(
 $core.method({
-selector: "shouldBeAliased",
+selector: "subtreeNeedsAliasing",
 protocol: "*Compiler-IR",
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
-source: "shouldBeAliased\x0a\x09^ super shouldBeAliased or: [ self isReferenced ]",
+source: "subtreeNeedsAliasing\x0a\x09^ true",
 referencedClasses: [],
 //>>excludeEnd("ide");
 pragmas: [],
-messageSends: ["or:", "shouldBeAliased", "isReferenced"]
+messageSends: []
 }, function ($methodClass){ return function (){
 var self=this,$self=this;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-var $1;
-$1=(
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = true,
-//>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._shouldBeAliased.call($self));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-return $recv($1)._or_((function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return $self._isReferenced();
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
-//>>excludeEnd("ctx");
-}));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{})});
-//>>excludeEnd("ctx");
+return true;
+
 }; }),
 $globals.AssignmentNode);
 
@@ -5883,20 +5861,15 @@ selector: "subtreeNeedsAliasing",
 protocol: "*Compiler-IR",
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
-source: "subtreeNeedsAliasing\x0a\x09^ self parent isSequenceNode not",
+source: "subtreeNeedsAliasing\x0a\x09^ true",
 referencedClasses: [],
 //>>excludeEnd("ide");
 pragmas: [],
-messageSends: ["not", "isSequenceNode", "parent"]
+messageSends: []
 }, function ($methodClass){ return function (){
 var self=this,$self=this;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-return $recv($recv($self._parent())._isSequenceNode())._not();
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{})});
-//>>excludeEnd("ctx");
+return true;
+
 }; }),
 $globals.CascadeNode);
 

+ 3 - 3
lang/src/Compiler-IR.st

@@ -1351,8 +1351,8 @@ subtreeNeedsAliasing
 
 !AssignmentNode methodsFor: '*Compiler-IR'!
 
-shouldBeAliased
-	^ super shouldBeAliased or: [ self isReferenced ]
+subtreeNeedsAliasing
+	^ true
 ! !
 
 !BlockNode methodsFor: '*Compiler-IR'!
@@ -1364,7 +1364,7 @@ subtreeNeedsAliasing
 !CascadeNode methodsFor: '*Compiler-IR'!
 
 subtreeNeedsAliasing
-	^ self parent isSequenceNode not
+	^ true
 ! !
 
 !JSStatementNode methodsFor: '*Compiler-IR'!

+ 3 - 5
lang/src/Platform-ImportExport.js

@@ -2259,7 +2259,7 @@ var char,result,chunk;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4;
+var $1,$2;
 var $early={};
 try {
 result=""._writeStream();
@@ -2289,8 +2289,7 @@ if($core.assert($2)){
 $recv($self.stream)._next();
 } else {
 $self.last=$recv($recv(result)._contents())._trimBoth();
-$3=$self.last;
-throw $early=[$3];
+throw $early=[$self.last];
 }
 }
 return $recv(result)._nextPut_(char);
@@ -2299,8 +2298,7 @@ return $recv(result)._nextPut_(char);
 //>>excludeEnd("ctx");
 }));
 $self.last=nil;
-$4=$self.last;
-return $4;
+return $self.last;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);