Skip to content

Commit

Permalink
fix error
Browse files Browse the repository at this point in the history
  • Loading branch information
plantain-00 committed Sep 15, 2016
1 parent 2315694 commit 7ddb79b
Show file tree
Hide file tree
Showing 9 changed files with 248 additions and 129 deletions.
11 changes: 6 additions & 5 deletions src/compiler/checker.ts
Expand Up @@ -14237,7 +14237,7 @@ namespace ts {
}

function checkGrammarStaticPropertyOrMethodName(node: ClassElement) {
if (node.flags & NodeFlags.Static) {
if (node.flags & ModifierFlags.Static) {
if (node.kind === SyntaxKind.PropertyDeclaration) {
return checkGrammarStaticMemberName(node, ((node as ClassElement).name as Identifier).text);
}
Expand All @@ -14256,9 +14256,10 @@ namespace ts {
const forbiddenNames = ["length", "name", "arguments", "caller"];
if (forbiddenNames.indexOf(name) !== -1) {
if (languageVersion < ScriptTarget.ES6) {
return grammarErrorOnNode(node, Diagnostics._0_is_not_allowed_to_be_used_as_a_name_of_a_static_property_or_method_in_a_class_for_target_es5_2696, name);
} else {
return grammarErrorOnNode(node, Diagnostics._0_is_not_allowed_to_be_used_as_a_name_of_a_static_property_in_a_class_for_target_es6_and_higher_2697, name);
return grammarErrorOnNode(node, Diagnostics._0_is_not_allowed_to_be_used_as_a_name_of_a_static_property_or_method_in_a_class_for_target_ES5, name);
}
else {
return grammarErrorOnNode(node, Diagnostics._0_is_not_allowed_to_be_used_as_a_name_of_a_static_property_in_a_class_for_target_ES6_and_higher, name);
}
}

Expand Down Expand Up @@ -19746,7 +19747,7 @@ namespace ts {

if (computedPropertyName.expression.kind === SyntaxKind.StringLiteral) {
const member = computedPropertyName.parent.parent.parent;
if (member.flags & NodeFlags.Static && member.kind === SyntaxKind.PropertyDeclaration) {
if (member.flags & ModifierFlags.Static && member.kind === SyntaxKind.PropertyDeclaration) {
return checkGrammarStaticMemberName(computedPropertyName, (computedPropertyName.expression as StringLiteral).text);
}
}
Expand Down

This file was deleted.

23 changes: 11 additions & 12 deletions tests/baselines/reference/checkGrammarStaticMemberName_es5.js
Expand Up @@ -25,20 +25,18 @@ class static_method {
var static_property = (function () {
function static_property() {
}
static_property.length = 1;
static_property.name = 1;
static_property.arguments = 1;
static_property.caller = 1;
static_property.foo = (_a = {},
_a["length"] = 1,
_a["name"] = 1,
_a["arguments"] = 1,
_a["caller"] = 1,
_a
);
return static_property;
var _a;
}());
static_property.length = 1;
static_property.name = 1;
static_property.arguments = 1;
static_property.caller = 1;
static_property.foo = (_a = {},
_a["length"] = 1,
_a["name"] = 1,
_a["arguments"] = 1,
_a["caller"] = 1,
_a);
var static_method = (function () {
function static_method() {
}
Expand All @@ -48,3 +46,4 @@ var static_method = (function () {
static_method.caller = function () { return 1; };
return static_method;
}());
var _a;
51 changes: 51 additions & 0 deletions tests/baselines/reference/checkGrammarStaticMemberName_es5.symbols
@@ -0,0 +1,51 @@
=== tests/cases/compiler/checkGrammarStaticMemberName_es5.ts ===

class static_property {
>static_property : Symbol(static_property, Decl(checkGrammarStaticMemberName_es5.ts, 0, 0))

static length = 1;
>length : Symbol(static_property.length, Decl(checkGrammarStaticMemberName_es5.ts, 1, 23))

static name = 1;
>name : Symbol(static_property.name, Decl(checkGrammarStaticMemberName_es5.ts, 2, 22))

static arguments = 1;
>arguments : Symbol(static_property.arguments, Decl(checkGrammarStaticMemberName_es5.ts, 3, 20))

static caller = 1;
>caller : Symbol(static_property.caller, Decl(checkGrammarStaticMemberName_es5.ts, 4, 25))

static foo = {
>foo : Symbol(static_property.foo, Decl(checkGrammarStaticMemberName_es5.ts, 5, 22))

["length"]: 1,
>"length" : Symbol(["length"], Decl(checkGrammarStaticMemberName_es5.ts, 6, 18))

["name"]: 1,
>"name" : Symbol(["name"], Decl(checkGrammarStaticMemberName_es5.ts, 7, 22))

["arguments"]: 1,
>"arguments" : Symbol(["arguments"], Decl(checkGrammarStaticMemberName_es5.ts, 8, 20))

["caller"]: 1,
>"caller" : Symbol(["caller"], Decl(checkGrammarStaticMemberName_es5.ts, 9, 25))

};
}

class static_method {
>static_method : Symbol(static_method, Decl(checkGrammarStaticMemberName_es5.ts, 12, 1))

static length() { return 1; }
>length : Symbol(static_method.length, Decl(checkGrammarStaticMemberName_es5.ts, 14, 21))

static name() { return 1; }
>name : Symbol(static_method.name, Decl(checkGrammarStaticMemberName_es5.ts, 15, 33))

static arguments() { return 1; }
>arguments : Symbol(static_method.arguments, Decl(checkGrammarStaticMemberName_es5.ts, 16, 31))

static caller() { return 1; }
>caller : Symbol(static_method.caller, Decl(checkGrammarStaticMemberName_es5.ts, 17, 36))
}

64 changes: 64 additions & 0 deletions tests/baselines/reference/checkGrammarStaticMemberName_es5.types
@@ -0,0 +1,64 @@
=== tests/cases/compiler/checkGrammarStaticMemberName_es5.ts ===

class static_property {
>static_property : static_property

static length = 1;
>length : number
>1 : 1

static name = 1;
>name : number
>1 : 1

static arguments = 1;
>arguments : number
>1 : 1

static caller = 1;
>caller : number
>1 : 1

static foo = {
>foo : { ["length"]: number; ["name"]: number; ["arguments"]: number; ["caller"]: number; }
>{ ["length"]: 1, ["name"]: 1, ["arguments"]: 1, ["caller"]: 1, } : { ["length"]: number; ["name"]: number; ["arguments"]: number; ["caller"]: number; }

["length"]: 1,
>"length" : "length"
>1 : 1

["name"]: 1,
>"name" : "name"
>1 : 1

["arguments"]: 1,
>"arguments" : "arguments"
>1 : 1

["caller"]: 1,
>"caller" : "caller"
>1 : 1

};
}

class static_method {
>static_method : static_method

static length() { return 1; }
>length : () => number
>1 : 1

static name() { return 1; }
>name : () => number
>1 : 1

static arguments() { return 1; }
>arguments : () => number
>1 : 1

static caller() { return 1; }
>caller : () => number
>1 : 1
}

This file was deleted.

51 changes: 51 additions & 0 deletions tests/baselines/reference/checkGrammarStaticMemberName_es6.symbols
@@ -0,0 +1,51 @@
=== tests/cases/compiler/checkGrammarStaticMemberName_es6.ts ===

class static_property {
>static_property : Symbol(static_property, Decl(checkGrammarStaticMemberName_es6.ts, 0, 0))

static length = 1;
>length : Symbol(static_property.length, Decl(checkGrammarStaticMemberName_es6.ts, 1, 23))

static name = 1;
>name : Symbol(static_property.name, Decl(checkGrammarStaticMemberName_es6.ts, 2, 22))

static arguments = 1;
>arguments : Symbol(static_property.arguments, Decl(checkGrammarStaticMemberName_es6.ts, 3, 20))

static caller = 1;
>caller : Symbol(static_property.caller, Decl(checkGrammarStaticMemberName_es6.ts, 4, 25))

static foo = {
>foo : Symbol(static_property.foo, Decl(checkGrammarStaticMemberName_es6.ts, 5, 22))

["length"]: 1,
>"length" : Symbol(["length"], Decl(checkGrammarStaticMemberName_es6.ts, 6, 18))

["name"]: 1,
>"name" : Symbol(["name"], Decl(checkGrammarStaticMemberName_es6.ts, 7, 22))

["arguments"]: 1,
>"arguments" : Symbol(["arguments"], Decl(checkGrammarStaticMemberName_es6.ts, 8, 20))

["caller"]: 1,
>"caller" : Symbol(["caller"], Decl(checkGrammarStaticMemberName_es6.ts, 9, 25))

};
}

class static_method {
>static_method : Symbol(static_method, Decl(checkGrammarStaticMemberName_es6.ts, 12, 1))

static length() { return 1; }
>length : Symbol(static_method.length, Decl(checkGrammarStaticMemberName_es6.ts, 14, 21))

static name() { return 1; }
>name : Symbol(static_method.name, Decl(checkGrammarStaticMemberName_es6.ts, 15, 33))

static arguments() { return 1; }
>arguments : Symbol(static_method.arguments, Decl(checkGrammarStaticMemberName_es6.ts, 16, 31))

static caller() { return 1; }
>caller : Symbol(static_method.caller, Decl(checkGrammarStaticMemberName_es6.ts, 17, 36))
}

0 comments on commit 7ddb79b

Please sign in to comment.