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
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" {
ContinueKeyword = 70,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
DefaultKeyword = 72,
>DebuggerKeyword : SyntaxKind
DefaultKeyword = 72,
>DefaultKeyword : SyntaxKind
>DeleteKeyword : SyntaxKind
DeleteKeyword = 73,
>DeleteKeyword : SyntaxKind
DoKeyword = 74,
ElseKeyword = 75,
>DoKeyword : SyntaxKind
ElseKeyword = 75,
>ElseKeyword : SyntaxKind
>EnumKeyword : SyntaxKind
EnumKeyword = 76,
>EnumKeyword : SyntaxKind
ExportKeyword = 77,
ExtendsKeyword = 78,
>ExportKeyword : SyntaxKind
ExtendsKeyword = 78,
>ExtendsKeyword : SyntaxKind
>FalseKeyword : SyntaxKind
FalseKeyword = 79,
>FalseKeyword : SyntaxKind
FinallyKeyword = 80,
ForKeyword = 81,
>FinallyKeyword : SyntaxKind
ForKeyword = 81,
>ForKeyword : SyntaxKind
>FunctionKeyword : SyntaxKind
FunctionKeyword = 82,
>FunctionKeyword : SyntaxKind
IfKeyword = 83,
ImportKeyword = 84,
>IfKeyword : SyntaxKind
ImportKeyword = 84,
>ImportKeyword : SyntaxKind
>InKeyword : SyntaxKind
InKeyword = 85,
>InKeyword : SyntaxKind
InstanceOfKeyword = 86,
>InstanceOfKeyword : SyntaxKind
NewKeyword = 87,
>NewKeyword : SyntaxKind
@@ -882,10 +882,10 @@ declare module "typescript" {
PrefixUnaryExpression = 165,
>PrefixUnaryExpression : SyntaxKind
PostfixUnaryExpression = 166,
>PostfixUnaryExpression : SyntaxKind
>PostfixUnaryExpression : SyntaxKind
BinaryExpression = 167,

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" {
ContinueKeyword = 70,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
DefaultKeyword = 72,
>DebuggerKeyword : SyntaxKind
DefaultKeyword = 72,
>DefaultKeyword : SyntaxKind
>DeleteKeyword : SyntaxKind
DeleteKeyword = 73,
>DeleteKeyword : SyntaxKind
DoKeyword = 74,
ElseKeyword = 75,
>DoKeyword : SyntaxKind
ElseKeyword = 75,
>ElseKeyword : SyntaxKind
>EnumKeyword : SyntaxKind
EnumKeyword = 76,
>EnumKeyword : SyntaxKind
ExportKeyword = 77,
ExtendsKeyword = 78,
>ExportKeyword : SyntaxKind
ExtendsKeyword = 78,
>ExtendsKeyword : SyntaxKind
>FalseKeyword : SyntaxKind
FalseKeyword = 79,
>FalseKeyword : SyntaxKind
FinallyKeyword = 80,
ForKeyword = 81,
>FinallyKeyword : SyntaxKind
ForKeyword = 81,
>ForKeyword : SyntaxKind
>FunctionKeyword : SyntaxKind
FunctionKeyword = 82,
>FunctionKeyword : SyntaxKind
IfKeyword = 83,
ImportKeyword = 84,
>IfKeyword : SyntaxKind
ImportKeyword = 84,
>ImportKeyword : SyntaxKind
>InKeyword : SyntaxKind
InKeyword = 85,
>InKeyword : SyntaxKind
InstanceOfKeyword = 86,
>InstanceOfKeyword : SyntaxKind
NewKeyword = 87,
>NewKeyword : SyntaxKind
@@ -1028,10 +1028,10 @@ declare module "typescript" {
PrefixUnaryExpression = 165,
>PrefixUnaryExpression : SyntaxKind
PostfixUnaryExpression = 166,
>PostfixUnaryExpression : SyntaxKind
>PostfixUnaryExpression : SyntaxKind
BinaryExpression = 167,

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" {
ContinueKeyword = 70,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
DefaultKeyword = 72,
>DebuggerKeyword : SyntaxKind
DefaultKeyword = 72,
>DefaultKeyword : SyntaxKind
>DeleteKeyword : SyntaxKind
DeleteKeyword = 73,
>DeleteKeyword : SyntaxKind
DoKeyword = 74,
ElseKeyword = 75,
>DoKeyword : SyntaxKind
ElseKeyword = 75,
>ElseKeyword : SyntaxKind
>EnumKeyword : SyntaxKind
EnumKeyword = 76,
>EnumKeyword : SyntaxKind
ExportKeyword = 77,
ExtendsKeyword = 78,
>ExportKeyword : SyntaxKind
ExtendsKeyword = 78,
>ExtendsKeyword : SyntaxKind
>FalseKeyword : SyntaxKind
FalseKeyword = 79,
>FalseKeyword : SyntaxKind
FinallyKeyword = 80,
ForKeyword = 81,
>FinallyKeyword : SyntaxKind
ForKeyword = 81,
>ForKeyword : SyntaxKind
>FunctionKeyword : SyntaxKind
FunctionKeyword = 82,
>FunctionKeyword : SyntaxKind
IfKeyword = 83,
ImportKeyword = 84,
>IfKeyword : SyntaxKind
ImportKeyword = 84,
>ImportKeyword : SyntaxKind
>InKeyword : SyntaxKind
InKeyword = 85,
>InKeyword : SyntaxKind
InstanceOfKeyword = 86,
>InstanceOfKeyword : SyntaxKind
NewKeyword = 87,
>NewKeyword : SyntaxKind
@@ -978,10 +978,10 @@ declare module "typescript" {
PrefixUnaryExpression = 165,
>PrefixUnaryExpression : SyntaxKind
PostfixUnaryExpression = 166,
>PostfixUnaryExpression : SyntaxKind
>PostfixUnaryExpression : SyntaxKind
BinaryExpression = 167,

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" {
ContinueKeyword = 70,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
>ContinueKeyword : SyntaxKind
DebuggerKeyword = 71,
DefaultKeyword = 72,
>DebuggerKeyword : SyntaxKind
DefaultKeyword = 72,
>DefaultKeyword : SyntaxKind
>DeleteKeyword : SyntaxKind
DeleteKeyword = 73,
>DeleteKeyword : SyntaxKind
DoKeyword = 74,
ElseKeyword = 75,
>DoKeyword : SyntaxKind
ElseKeyword = 75,
>ElseKeyword : SyntaxKind
>EnumKeyword : SyntaxKind
EnumKeyword = 76,
>EnumKeyword : SyntaxKind
ExportKeyword = 77,
ExtendsKeyword = 78,
>ExportKeyword : SyntaxKind
ExtendsKeyword = 78,
>ExtendsKeyword : SyntaxKind
>FalseKeyword : SyntaxKind
FalseKeyword = 79,
>FalseKeyword : SyntaxKind
FinallyKeyword = 80,
ForKeyword = 81,
>FinallyKeyword : SyntaxKind
ForKeyword = 81,
>ForKeyword : SyntaxKind
>FunctionKeyword : SyntaxKind
FunctionKeyword = 82,
>FunctionKeyword : SyntaxKind
IfKeyword = 83,
ImportKeyword = 84,
>IfKeyword : SyntaxKind
ImportKeyword = 84,
>ImportKeyword : SyntaxKind
>InKeyword : SyntaxKind
InKeyword = 85,
>InKeyword : SyntaxKind
InstanceOfKeyword = 86,
>InstanceOfKeyword : SyntaxKind
NewKeyword = 87,
>NewKeyword : SyntaxKind
@@ -1151,10 +1151,10 @@ declare module "typescript" {
PrefixUnaryExpression = 165,
>PrefixUnaryExpression : SyntaxKind
PostfixUnaryExpression = 166,
>PostfixUnaryExpression : SyntaxKind
>PostfixUnaryExpression : SyntaxKind
BinaryExpression = 167,

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;