|
@@ -2319,6 +2319,42 @@ messageSends: ["pushScope:", "newBlockScope", "scope:", "node:", "blockIndex:",
|
|
|
}),
|
|
|
$globals.SemanticAnalyzer);
|
|
|
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "visitBlockSequenceNode:",
|
|
|
+protocol: "visiting",
|
|
|
+fn: function (aNode){
|
|
|
+var self=this,$self=this;
|
|
|
+
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+
|
|
|
+var $1;
|
|
|
+$1=$recv($recv(aNode)._dagChildren())._anySatisfy_("isJSStatementNode");
|
|
|
+if($core.assert($1)){
|
|
|
+$recv($globals.JsStatementDisplacedError)._signal();
|
|
|
+}
|
|
|
+(
|
|
|
+
|
|
|
+$ctx1.supercall = true,
|
|
|
+
|
|
|
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitBlockSequenceNode_.apply($self, [aNode]));
|
|
|
+
|
|
|
+$ctx1.supercall = false;
|
|
|
+
|
|
|
+return self;
|
|
|
+
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode},$globals.SemanticAnalyzer)});
|
|
|
+
|
|
|
+},
|
|
|
+
|
|
|
+args: ["aNode"],
|
|
|
+source: "visitBlockSequenceNode: aNode\x0a\x09(aNode dagChildren anySatisfy: #isJSStatementNode)\x0a\x09\x09ifTrue: [ JsStatementDisplacedError signal ].\x0a\x0a\x09super visitBlockSequenceNode: aNode\x0a\x09",
|
|
|
+referencedClasses: ["JsStatementDisplacedError"],
|
|
|
+
|
|
|
+messageSends: ["ifTrue:", "anySatisfy:", "dagChildren", "signal", "visitBlockSequenceNode:"]
|
|
|
+}),
|
|
|
+$globals.SemanticAnalyzer);
|
|
|
+
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
selector: "visitCascadeNode:",
|
|
@@ -2702,6 +2738,9 @@ $globals.InvalidAssignmentError);
|
|
|
|
|
|
|
|
|
|
|
|
+$core.addClass("JsStatementDisplacedError", $globals.SemanticError, [], "Compiler-Semantic");
|
|
|
+
|
|
|
+
|
|
|
$core.addClass("ShadowingVariableError", $globals.SemanticError, ["variableName"], "Compiler-Semantic");
|
|
|
|
|
|
$globals.ShadowingVariableError.comment="I get signaled when a variable in a block or method scope shadows a variable of the same name in an outer scope.";
|