Merge pull request #2146 from Microsoft/fromContextualKeyword

'from' is a contextual keyword, and should only be recognized as by the parser as such.
This commit is contained in:
CyrusNajmabadi 2015-02-26 01:00:50 -08:00
commit 9c27fb1592
15 changed files with 228 additions and 203 deletions

View File

@ -121,7 +121,6 @@ module ts {
WithKeyword,
// Strict mode reserved words
AsKeyword,
FromKeyword,
ImplementsKeyword,
InterfaceKeyword,
LetKeyword,
@ -131,7 +130,7 @@ module ts {
PublicKeyword,
StaticKeyword,
YieldKeyword,
// TypeScript keywords
// Contextual keywords
AnyKeyword,
BooleanKeyword,
ConstructorKeyword,
@ -144,7 +143,9 @@ module ts {
StringKeyword,
SymbolKeyword,
TypeKeyword,
FromKeyword,
OfKeyword, // LastKeyword and LastToken
// Parse tree nodes
// Names
@ -279,7 +280,7 @@ module ts {
FirstPunctuation = OpenBraceToken,
LastPunctuation = CaretEqualsToken,
FirstToken = Unknown,
LastToken = OfKeyword,
LastToken = LastKeyword,
FirstTriviaToken = SingleLineCommentTrivia,
LastTriviaToken = ConflictMarkerTrivia,
FirstLiteralToken = NumericLiteral,

View File

@ -161,28 +161,28 @@ declare module "typescript" {
WhileKeyword = 99,
WithKeyword = 100,
AsKeyword = 101,
FromKeyword = 102,
ImplementsKeyword = 103,
InterfaceKeyword = 104,
LetKeyword = 105,
PackageKeyword = 106,
PrivateKeyword = 107,
ProtectedKeyword = 108,
PublicKeyword = 109,
StaticKeyword = 110,
YieldKeyword = 111,
AnyKeyword = 112,
BooleanKeyword = 113,
ConstructorKeyword = 114,
DeclareKeyword = 115,
GetKeyword = 116,
ModuleKeyword = 117,
RequireKeyword = 118,
NumberKeyword = 119,
SetKeyword = 120,
StringKeyword = 121,
SymbolKeyword = 122,
TypeKeyword = 123,
ImplementsKeyword = 102,
InterfaceKeyword = 103,
LetKeyword = 104,
PackageKeyword = 105,
PrivateKeyword = 106,
ProtectedKeyword = 107,
PublicKeyword = 108,
StaticKeyword = 109,
YieldKeyword = 110,
AnyKeyword = 111,
BooleanKeyword = 112,
ConstructorKeyword = 113,
DeclareKeyword = 114,
GetKeyword = 115,
ModuleKeyword = 116,
RequireKeyword = 117,
NumberKeyword = 118,
SetKeyword = 119,
StringKeyword = 120,
SymbolKeyword = 121,
TypeKeyword = 122,
FromKeyword = 123,
OfKeyword = 124,
QualifiedName = 125,
ComputedPropertyName = 126,
@ -288,8 +288,8 @@ declare module "typescript" {
LastReservedWord = 100,
FirstKeyword = 65,
LastKeyword = 124,
FirstFutureReservedWord = 103,
LastFutureReservedWord = 111,
FirstFutureReservedWord = 102,
LastFutureReservedWord = 110,
FirstTypeNode = 139,
LastTypeNode = 147,
FirstPunctuation = 14,

View File

@ -501,72 +501,72 @@ declare module "typescript" {
AsKeyword = 101,
>AsKeyword : SyntaxKind
FromKeyword = 102,
>FromKeyword : SyntaxKind
ImplementsKeyword = 103,
ImplementsKeyword = 102,
>ImplementsKeyword : SyntaxKind
InterfaceKeyword = 104,
InterfaceKeyword = 103,
>InterfaceKeyword : SyntaxKind
LetKeyword = 105,
LetKeyword = 104,
>LetKeyword : SyntaxKind
PackageKeyword = 106,
PackageKeyword = 105,
>PackageKeyword : SyntaxKind
PrivateKeyword = 107,
PrivateKeyword = 106,
>PrivateKeyword : SyntaxKind
ProtectedKeyword = 108,
ProtectedKeyword = 107,
>ProtectedKeyword : SyntaxKind
PublicKeyword = 109,
PublicKeyword = 108,
>PublicKeyword : SyntaxKind
StaticKeyword = 110,
StaticKeyword = 109,
>StaticKeyword : SyntaxKind
YieldKeyword = 111,
YieldKeyword = 110,
>YieldKeyword : SyntaxKind
AnyKeyword = 112,
AnyKeyword = 111,
>AnyKeyword : SyntaxKind
BooleanKeyword = 113,
BooleanKeyword = 112,
>BooleanKeyword : SyntaxKind
ConstructorKeyword = 114,
ConstructorKeyword = 113,
>ConstructorKeyword : SyntaxKind
DeclareKeyword = 115,
DeclareKeyword = 114,
>DeclareKeyword : SyntaxKind
GetKeyword = 116,
GetKeyword = 115,
>GetKeyword : SyntaxKind
ModuleKeyword = 117,
ModuleKeyword = 116,
>ModuleKeyword : SyntaxKind
RequireKeyword = 118,
RequireKeyword = 117,
>RequireKeyword : SyntaxKind
NumberKeyword = 119,
NumberKeyword = 118,
>NumberKeyword : SyntaxKind
SetKeyword = 120,
SetKeyword = 119,
>SetKeyword : SyntaxKind
StringKeyword = 121,
StringKeyword = 120,
>StringKeyword : SyntaxKind
SymbolKeyword = 122,
SymbolKeyword = 121,
>SymbolKeyword : SyntaxKind
TypeKeyword = 123,
TypeKeyword = 122,
>TypeKeyword : SyntaxKind
FromKeyword = 123,
>FromKeyword : SyntaxKind
OfKeyword = 124,
>OfKeyword : SyntaxKind
@ -882,10 +882,10 @@ declare module "typescript" {
LastKeyword = 124,
>LastKeyword : SyntaxKind
FirstFutureReservedWord = 103,
FirstFutureReservedWord = 102,
>FirstFutureReservedWord : SyntaxKind
LastFutureReservedWord = 111,
LastFutureReservedWord = 110,
>LastFutureReservedWord : SyntaxKind
FirstTypeNode = 139,

View File

@ -192,28 +192,28 @@ declare module "typescript" {
WhileKeyword = 99,
WithKeyword = 100,
AsKeyword = 101,
FromKeyword = 102,
ImplementsKeyword = 103,
InterfaceKeyword = 104,
LetKeyword = 105,
PackageKeyword = 106,
PrivateKeyword = 107,
ProtectedKeyword = 108,
PublicKeyword = 109,
StaticKeyword = 110,
YieldKeyword = 111,
AnyKeyword = 112,
BooleanKeyword = 113,
ConstructorKeyword = 114,
DeclareKeyword = 115,
GetKeyword = 116,
ModuleKeyword = 117,
RequireKeyword = 118,
NumberKeyword = 119,
SetKeyword = 120,
StringKeyword = 121,
SymbolKeyword = 122,
TypeKeyword = 123,
ImplementsKeyword = 102,
InterfaceKeyword = 103,
LetKeyword = 104,
PackageKeyword = 105,
PrivateKeyword = 106,
ProtectedKeyword = 107,
PublicKeyword = 108,
StaticKeyword = 109,
YieldKeyword = 110,
AnyKeyword = 111,
BooleanKeyword = 112,
ConstructorKeyword = 113,
DeclareKeyword = 114,
GetKeyword = 115,
ModuleKeyword = 116,
RequireKeyword = 117,
NumberKeyword = 118,
SetKeyword = 119,
StringKeyword = 120,
SymbolKeyword = 121,
TypeKeyword = 122,
FromKeyword = 123,
OfKeyword = 124,
QualifiedName = 125,
ComputedPropertyName = 126,
@ -319,8 +319,8 @@ declare module "typescript" {
LastReservedWord = 100,
FirstKeyword = 65,
LastKeyword = 124,
FirstFutureReservedWord = 103,
LastFutureReservedWord = 111,
FirstFutureReservedWord = 102,
LastFutureReservedWord = 110,
FirstTypeNode = 139,
LastTypeNode = 147,
FirstPunctuation = 14,

View File

@ -647,72 +647,72 @@ declare module "typescript" {
AsKeyword = 101,
>AsKeyword : SyntaxKind
FromKeyword = 102,
>FromKeyword : SyntaxKind
ImplementsKeyword = 103,
ImplementsKeyword = 102,
>ImplementsKeyword : SyntaxKind
InterfaceKeyword = 104,
InterfaceKeyword = 103,
>InterfaceKeyword : SyntaxKind
LetKeyword = 105,
LetKeyword = 104,
>LetKeyword : SyntaxKind
PackageKeyword = 106,
PackageKeyword = 105,
>PackageKeyword : SyntaxKind
PrivateKeyword = 107,
PrivateKeyword = 106,
>PrivateKeyword : SyntaxKind
ProtectedKeyword = 108,
ProtectedKeyword = 107,
>ProtectedKeyword : SyntaxKind
PublicKeyword = 109,
PublicKeyword = 108,
>PublicKeyword : SyntaxKind
StaticKeyword = 110,
StaticKeyword = 109,
>StaticKeyword : SyntaxKind
YieldKeyword = 111,
YieldKeyword = 110,
>YieldKeyword : SyntaxKind
AnyKeyword = 112,
AnyKeyword = 111,
>AnyKeyword : SyntaxKind
BooleanKeyword = 113,
BooleanKeyword = 112,
>BooleanKeyword : SyntaxKind
ConstructorKeyword = 114,
ConstructorKeyword = 113,
>ConstructorKeyword : SyntaxKind
DeclareKeyword = 115,
DeclareKeyword = 114,
>DeclareKeyword : SyntaxKind
GetKeyword = 116,
GetKeyword = 115,
>GetKeyword : SyntaxKind
ModuleKeyword = 117,
ModuleKeyword = 116,
>ModuleKeyword : SyntaxKind
RequireKeyword = 118,
RequireKeyword = 117,
>RequireKeyword : SyntaxKind
NumberKeyword = 119,
NumberKeyword = 118,
>NumberKeyword : SyntaxKind
SetKeyword = 120,
SetKeyword = 119,
>SetKeyword : SyntaxKind
StringKeyword = 121,
StringKeyword = 120,
>StringKeyword : SyntaxKind
SymbolKeyword = 122,
SymbolKeyword = 121,
>SymbolKeyword : SyntaxKind
TypeKeyword = 123,
TypeKeyword = 122,
>TypeKeyword : SyntaxKind
FromKeyword = 123,
>FromKeyword : SyntaxKind
OfKeyword = 124,
>OfKeyword : SyntaxKind
@ -1028,10 +1028,10 @@ declare module "typescript" {
LastKeyword = 124,
>LastKeyword : SyntaxKind
FirstFutureReservedWord = 103,
FirstFutureReservedWord = 102,
>FirstFutureReservedWord : SyntaxKind
LastFutureReservedWord = 111,
LastFutureReservedWord = 110,
>LastFutureReservedWord : SyntaxKind
FirstTypeNode = 139,

View File

@ -193,28 +193,28 @@ declare module "typescript" {
WhileKeyword = 99,
WithKeyword = 100,
AsKeyword = 101,
FromKeyword = 102,
ImplementsKeyword = 103,
InterfaceKeyword = 104,
LetKeyword = 105,
PackageKeyword = 106,
PrivateKeyword = 107,
ProtectedKeyword = 108,
PublicKeyword = 109,
StaticKeyword = 110,
YieldKeyword = 111,
AnyKeyword = 112,
BooleanKeyword = 113,
ConstructorKeyword = 114,
DeclareKeyword = 115,
GetKeyword = 116,
ModuleKeyword = 117,
RequireKeyword = 118,
NumberKeyword = 119,
SetKeyword = 120,
StringKeyword = 121,
SymbolKeyword = 122,
TypeKeyword = 123,
ImplementsKeyword = 102,
InterfaceKeyword = 103,
LetKeyword = 104,
PackageKeyword = 105,
PrivateKeyword = 106,
ProtectedKeyword = 107,
PublicKeyword = 108,
StaticKeyword = 109,
YieldKeyword = 110,
AnyKeyword = 111,
BooleanKeyword = 112,
ConstructorKeyword = 113,
DeclareKeyword = 114,
GetKeyword = 115,
ModuleKeyword = 116,
RequireKeyword = 117,
NumberKeyword = 118,
SetKeyword = 119,
StringKeyword = 120,
SymbolKeyword = 121,
TypeKeyword = 122,
FromKeyword = 123,
OfKeyword = 124,
QualifiedName = 125,
ComputedPropertyName = 126,
@ -320,8 +320,8 @@ declare module "typescript" {
LastReservedWord = 100,
FirstKeyword = 65,
LastKeyword = 124,
FirstFutureReservedWord = 103,
LastFutureReservedWord = 111,
FirstFutureReservedWord = 102,
LastFutureReservedWord = 110,
FirstTypeNode = 139,
LastTypeNode = 147,
FirstPunctuation = 14,

View File

@ -597,72 +597,72 @@ declare module "typescript" {
AsKeyword = 101,
>AsKeyword : SyntaxKind
FromKeyword = 102,
>FromKeyword : SyntaxKind
ImplementsKeyword = 103,
ImplementsKeyword = 102,
>ImplementsKeyword : SyntaxKind
InterfaceKeyword = 104,
InterfaceKeyword = 103,
>InterfaceKeyword : SyntaxKind
LetKeyword = 105,
LetKeyword = 104,
>LetKeyword : SyntaxKind
PackageKeyword = 106,
PackageKeyword = 105,
>PackageKeyword : SyntaxKind
PrivateKeyword = 107,
PrivateKeyword = 106,
>PrivateKeyword : SyntaxKind
ProtectedKeyword = 108,
ProtectedKeyword = 107,
>ProtectedKeyword : SyntaxKind
PublicKeyword = 109,
PublicKeyword = 108,
>PublicKeyword : SyntaxKind
StaticKeyword = 110,
StaticKeyword = 109,
>StaticKeyword : SyntaxKind
YieldKeyword = 111,
YieldKeyword = 110,
>YieldKeyword : SyntaxKind
AnyKeyword = 112,
AnyKeyword = 111,
>AnyKeyword : SyntaxKind
BooleanKeyword = 113,
BooleanKeyword = 112,
>BooleanKeyword : SyntaxKind
ConstructorKeyword = 114,
ConstructorKeyword = 113,
>ConstructorKeyword : SyntaxKind
DeclareKeyword = 115,
DeclareKeyword = 114,
>DeclareKeyword : SyntaxKind
GetKeyword = 116,
GetKeyword = 115,
>GetKeyword : SyntaxKind
ModuleKeyword = 117,
ModuleKeyword = 116,
>ModuleKeyword : SyntaxKind
RequireKeyword = 118,
RequireKeyword = 117,
>RequireKeyword : SyntaxKind
NumberKeyword = 119,
NumberKeyword = 118,
>NumberKeyword : SyntaxKind
SetKeyword = 120,
SetKeyword = 119,
>SetKeyword : SyntaxKind
StringKeyword = 121,
StringKeyword = 120,
>StringKeyword : SyntaxKind
SymbolKeyword = 122,
SymbolKeyword = 121,
>SymbolKeyword : SyntaxKind
TypeKeyword = 123,
TypeKeyword = 122,
>TypeKeyword : SyntaxKind
FromKeyword = 123,
>FromKeyword : SyntaxKind
OfKeyword = 124,
>OfKeyword : SyntaxKind
@ -978,10 +978,10 @@ declare module "typescript" {
LastKeyword = 124,
>LastKeyword : SyntaxKind
FirstFutureReservedWord = 103,
FirstFutureReservedWord = 102,
>FirstFutureReservedWord : SyntaxKind
LastFutureReservedWord = 111,
LastFutureReservedWord = 110,
>LastFutureReservedWord : SyntaxKind
FirstTypeNode = 139,

View File

@ -230,28 +230,28 @@ declare module "typescript" {
WhileKeyword = 99,
WithKeyword = 100,
AsKeyword = 101,
FromKeyword = 102,
ImplementsKeyword = 103,
InterfaceKeyword = 104,
LetKeyword = 105,
PackageKeyword = 106,
PrivateKeyword = 107,
ProtectedKeyword = 108,
PublicKeyword = 109,
StaticKeyword = 110,
YieldKeyword = 111,
AnyKeyword = 112,
BooleanKeyword = 113,
ConstructorKeyword = 114,
DeclareKeyword = 115,
GetKeyword = 116,
ModuleKeyword = 117,
RequireKeyword = 118,
NumberKeyword = 119,
SetKeyword = 120,
StringKeyword = 121,
SymbolKeyword = 122,
TypeKeyword = 123,
ImplementsKeyword = 102,
InterfaceKeyword = 103,
LetKeyword = 104,
PackageKeyword = 105,
PrivateKeyword = 106,
ProtectedKeyword = 107,
PublicKeyword = 108,
StaticKeyword = 109,
YieldKeyword = 110,
AnyKeyword = 111,
BooleanKeyword = 112,
ConstructorKeyword = 113,
DeclareKeyword = 114,
GetKeyword = 115,
ModuleKeyword = 116,
RequireKeyword = 117,
NumberKeyword = 118,
SetKeyword = 119,
StringKeyword = 120,
SymbolKeyword = 121,
TypeKeyword = 122,
FromKeyword = 123,
OfKeyword = 124,
QualifiedName = 125,
ComputedPropertyName = 126,
@ -357,8 +357,8 @@ declare module "typescript" {
LastReservedWord = 100,
FirstKeyword = 65,
LastKeyword = 124,
FirstFutureReservedWord = 103,
LastFutureReservedWord = 111,
FirstFutureReservedWord = 102,
LastFutureReservedWord = 110,
FirstTypeNode = 139,
LastTypeNode = 147,
FirstPunctuation = 14,

View File

@ -770,72 +770,72 @@ declare module "typescript" {
AsKeyword = 101,
>AsKeyword : SyntaxKind
FromKeyword = 102,
>FromKeyword : SyntaxKind
ImplementsKeyword = 103,
ImplementsKeyword = 102,
>ImplementsKeyword : SyntaxKind
InterfaceKeyword = 104,
InterfaceKeyword = 103,
>InterfaceKeyword : SyntaxKind
LetKeyword = 105,
LetKeyword = 104,
>LetKeyword : SyntaxKind
PackageKeyword = 106,
PackageKeyword = 105,
>PackageKeyword : SyntaxKind
PrivateKeyword = 107,
PrivateKeyword = 106,
>PrivateKeyword : SyntaxKind
ProtectedKeyword = 108,
ProtectedKeyword = 107,
>ProtectedKeyword : SyntaxKind
PublicKeyword = 109,
PublicKeyword = 108,
>PublicKeyword : SyntaxKind
StaticKeyword = 110,
StaticKeyword = 109,
>StaticKeyword : SyntaxKind
YieldKeyword = 111,
YieldKeyword = 110,
>YieldKeyword : SyntaxKind
AnyKeyword = 112,
AnyKeyword = 111,
>AnyKeyword : SyntaxKind
BooleanKeyword = 113,
BooleanKeyword = 112,
>BooleanKeyword : SyntaxKind
ConstructorKeyword = 114,
ConstructorKeyword = 113,
>ConstructorKeyword : SyntaxKind
DeclareKeyword = 115,
DeclareKeyword = 114,
>DeclareKeyword : SyntaxKind
GetKeyword = 116,
GetKeyword = 115,
>GetKeyword : SyntaxKind
ModuleKeyword = 117,
ModuleKeyword = 116,
>ModuleKeyword : SyntaxKind
RequireKeyword = 118,
RequireKeyword = 117,
>RequireKeyword : SyntaxKind
NumberKeyword = 119,
NumberKeyword = 118,
>NumberKeyword : SyntaxKind
SetKeyword = 120,
SetKeyword = 119,
>SetKeyword : SyntaxKind
StringKeyword = 121,
StringKeyword = 120,
>StringKeyword : SyntaxKind
SymbolKeyword = 122,
SymbolKeyword = 121,
>SymbolKeyword : SyntaxKind
TypeKeyword = 123,
TypeKeyword = 122,
>TypeKeyword : SyntaxKind
FromKeyword = 123,
>FromKeyword : SyntaxKind
OfKeyword = 124,
>OfKeyword : SyntaxKind
@ -1151,10 +1151,10 @@ declare module "typescript" {
LastKeyword = 124,
>LastKeyword : SyntaxKind
FirstFutureReservedWord = 103,
FirstFutureReservedWord = 102,
>FirstFutureReservedWord : SyntaxKind
LastFutureReservedWord = 111,
LastFutureReservedWord = 110,
>LastFutureReservedWord : SyntaxKind
FirstTypeNode = 139,

View File

@ -0,0 +1,5 @@
//// [fromAsIdentifier1.ts]
var from;
//// [fromAsIdentifier1.js]
var from;

View File

@ -0,0 +1,4 @@
=== tests/cases/compiler/fromAsIdentifier1.ts ===
var from;
>from : any

View File

@ -0,0 +1,7 @@
//// [fromAsIdentifier2.ts]
"use strict";
var from;
//// [fromAsIdentifier2.js]
"use strict";
var from;

View File

@ -0,0 +1,5 @@
=== tests/cases/compiler/fromAsIdentifier2.ts ===
"use strict";
var from;
>from : any

View File

@ -0,0 +1 @@
var from;

View File

@ -0,0 +1,2 @@
"use strict";
var from;