Browse Source

Change #isAssignable default to false.

Suprisingly little variable types are assignable;
only ivars and temp vars.
Herby Vojčík 4 năm trước cách đây
mục cha
commit
f385aeefb3
2 tập tin đã thay đổi với 47 bổ sung91 xóa
  1. 38 74
      lang/src/Compiler-Semantic.js
  2. 9 17
      lang/src/Compiler-Semantic.st

+ 38 - 74
lang/src/Compiler-Semantic.js

@@ -1074,14 +1074,14 @@ selector: "isAssignable",
 protocol: "testing",
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
-source: "isAssignable\x0a\x09^ true",
+source: "isAssignable\x0a\x09^ false",
 referencedClasses: [],
 //>>excludeEnd("ide");
 pragmas: [],
 messageSends: []
 }, function ($methodClass){ return function (){
 var self=this,$self=this;
-return true;
+return false;
 
 }; }),
 $globals.ScopeVar);
@@ -1390,24 +1390,6 @@ $core.addClass("ArgVar", $globals.ScopeVar, [], "Compiler-Semantic");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ArgVar.comment="I am an argument of a method or block.";
 //>>excludeEnd("ide");
-$core.addMethod(
-$core.method({
-selector: "isAssignable",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isAssignable\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.ArgVar);
-
 $core.addMethod(
 $core.method({
 selector: "isIdempotent",
@@ -1455,24 +1437,6 @@ return "$globals.".__comma($self._name());
 }; }),
 $globals.ClassRefVar);
 
-$core.addMethod(
-$core.method({
-selector: "isAssignable",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isAssignable\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.ClassRefVar);
-
 $core.addMethod(
 $core.method({
 selector: "isClassRefVar",
@@ -1497,24 +1461,6 @@ $core.addClass("ExternallyKnownVar", $globals.ScopeVar, [], "Compiler-Semantic")
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.ExternallyKnownVar.comment="I am a variable known externally (not in method scope).";
 //>>excludeEnd("ide");
-$core.addMethod(
-$core.method({
-selector: "isAssignable",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isAssignable\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.ExternallyKnownVar);
-
 $core.addMethod(
 $core.method({
 selector: "isExternallyKnownVar",
@@ -1562,6 +1508,24 @@ return "$self.".__comma($self._name());
 }; }),
 $globals.InstanceVar);
 
+$core.addMethod(
+$core.method({
+selector: "isAssignable",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isAssignable\x0a\x09^ true",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return true;
+
+}; }),
+$globals.InstanceVar);
+
 $core.addMethod(
 $core.method({
 selector: "isInstanceVar",
@@ -1609,24 +1573,6 @@ return $self._name();
 }; }),
 $globals.PseudoVar);
 
-$core.addMethod(
-$core.method({
-selector: "isAssignable",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isAssignable\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.PseudoVar);
-
 $core.addMethod(
 $core.method({
 selector: "isIdempotent",
@@ -1835,6 +1781,24 @@ $core.addClass("TempVar", $globals.ScopeVar, [], "Compiler-Semantic");
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.TempVar.comment="I am an temporary variable of a method or block.";
 //>>excludeEnd("ide");
+$core.addMethod(
+$core.method({
+selector: "isAssignable",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isAssignable\x0a\x09^ true",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return true;
+
+}; }),
+$globals.TempVar);
+
 $core.addMethod(
 $core.method({
 selector: "isTempVar",

+ 9 - 17
lang/src/Compiler-Semantic.st

@@ -234,7 +234,7 @@ scope: aScope
 !ScopeVar methodsFor: 'testing'!
 
 isAssignable
-	^ true
+	^ false
 !
 
 isClassRefVar
@@ -302,10 +302,6 @@ I am an argument of a method or block.!
 
 !ArgVar methodsFor: 'testing'!
 
-isAssignable
-	^ false
-!
-
 isIdempotent
 	^ true
 ! !
@@ -324,10 +320,6 @@ alias
 
 !ClassRefVar methodsFor: 'testing'!
 
-isAssignable
-	^ false
-!
-
 isClassRefVar
 	^ true
 ! !
@@ -340,10 +332,6 @@ I am a variable known externally (not in method scope).!
 
 !ExternallyKnownVar methodsFor: 'testing'!
 
-isAssignable
-	^ false
-!
-
 isExternallyKnownVar
 	^ true
 ! !
@@ -360,6 +348,10 @@ alias
 	^ '$self.', self name
 !
 
+isAssignable
+	^ true
+!
+
 isInstanceVar
 	^ true
 ! !
@@ -380,10 +372,6 @@ alias
 
 !PseudoVar methodsFor: 'testing'!
 
-isAssignable
-	^ false
-!
-
 isIdempotent
 	^ true
 !
@@ -453,6 +441,10 @@ I am an temporary variable of a method or block.!
 
 !TempVar methodsFor: 'testing'!
 
+isAssignable
+	^ true
+!
+
 isTempVar
 	^ true
 ! !