From 67c27ee766c9c1f2d7c8397400818171490214b1 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 18 May 2015 18:17:55 -0700 Subject: [PATCH 1/3] Remove check for declare modifier on interface --- src/compiler/checker.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 470386aa2dd..3b7e787fe4b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -12361,9 +12361,6 @@ module ts { else if ((node.kind === SyntaxKind.ImportDeclaration || node.kind === SyntaxKind.ImportEqualsDeclaration) && flags & NodeFlags.Ambient) { return grammarErrorOnNode(lastDeclare, Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); } - else if (node.kind === SyntaxKind.InterfaceDeclaration && flags & NodeFlags.Ambient) { - return grammarErrorOnNode(lastDeclare, Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); - } else if (node.kind === SyntaxKind.Parameter && (flags & NodeFlags.AccessibilityModifier) && isBindingPattern((node).name)) { return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); } From 89d0f41e95874b447e51b1dc2c687f00acf2017b Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 18 May 2015 18:18:08 -0700 Subject: [PATCH 2/3] Update baselines --- .../reference/parserInterfaceDeclaration5.errors.txt | 8 -------- .../reference/parserInterfaceDeclaration5.symbols | 4 ++++ .../baselines/reference/parserInterfaceDeclaration5.types | 4 ++++ 3 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 tests/baselines/reference/parserInterfaceDeclaration5.errors.txt create mode 100644 tests/baselines/reference/parserInterfaceDeclaration5.symbols create mode 100644 tests/baselines/reference/parserInterfaceDeclaration5.types diff --git a/tests/baselines/reference/parserInterfaceDeclaration5.errors.txt b/tests/baselines/reference/parserInterfaceDeclaration5.errors.txt deleted file mode 100644 index 2b7ea65e95b..00000000000 --- a/tests/baselines/reference/parserInterfaceDeclaration5.errors.txt +++ /dev/null @@ -1,8 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts(1,1): error TS1045: A 'declare' modifier cannot be used with an interface declaration. - - -==== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts (1 errors) ==== - declare interface I { - ~~~~~~~ -!!! error TS1045: A 'declare' modifier cannot be used with an interface declaration. - } \ No newline at end of file diff --git a/tests/baselines/reference/parserInterfaceDeclaration5.symbols b/tests/baselines/reference/parserInterfaceDeclaration5.symbols new file mode 100644 index 00000000000..f9b738347ca --- /dev/null +++ b/tests/baselines/reference/parserInterfaceDeclaration5.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts === +declare interface I { +>I : Symbol(I, Decl(parserInterfaceDeclaration5.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parserInterfaceDeclaration5.types b/tests/baselines/reference/parserInterfaceDeclaration5.types new file mode 100644 index 00000000000..c89559fc5c7 --- /dev/null +++ b/tests/baselines/reference/parserInterfaceDeclaration5.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts === +declare interface I { +>I : I +} From 2191adca1076956d50136a1f167f2727063f7a6b Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 18 May 2015 18:18:16 -0700 Subject: [PATCH 3/3] Add tests --- .../baselines/reference/declareModifierOnTypeAlias.js | 6 ++++++ .../reference/declareModifierOnTypeAlias.symbols | 11 +++++++++++ .../reference/declareModifierOnTypeAlias.types | 11 +++++++++++ tests/cases/compiler/declareModifierOnTypeAlias.ts | 3 +++ 4 files changed, 31 insertions(+) create mode 100644 tests/baselines/reference/declareModifierOnTypeAlias.js create mode 100644 tests/baselines/reference/declareModifierOnTypeAlias.symbols create mode 100644 tests/baselines/reference/declareModifierOnTypeAlias.types create mode 100644 tests/cases/compiler/declareModifierOnTypeAlias.ts diff --git a/tests/baselines/reference/declareModifierOnTypeAlias.js b/tests/baselines/reference/declareModifierOnTypeAlias.js new file mode 100644 index 00000000000..a9bb3c6363c --- /dev/null +++ b/tests/baselines/reference/declareModifierOnTypeAlias.js @@ -0,0 +1,6 @@ +//// [declareModifierOnTypeAlias.ts] +declare type Foo = string; +type Bar = number; +declare type Baz = Bar; + +//// [declareModifierOnTypeAlias.js] diff --git a/tests/baselines/reference/declareModifierOnTypeAlias.symbols b/tests/baselines/reference/declareModifierOnTypeAlias.symbols new file mode 100644 index 00000000000..32a90fc94da --- /dev/null +++ b/tests/baselines/reference/declareModifierOnTypeAlias.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/declareModifierOnTypeAlias.ts === +declare type Foo = string; +>Foo : Symbol(Foo, Decl(declareModifierOnTypeAlias.ts, 0, 0)) + +type Bar = number; +>Bar : Symbol(Bar, Decl(declareModifierOnTypeAlias.ts, 0, 26)) + +declare type Baz = Bar; +>Baz : Symbol(Baz, Decl(declareModifierOnTypeAlias.ts, 1, 18)) +>Bar : Symbol(Bar, Decl(declareModifierOnTypeAlias.ts, 0, 26)) + diff --git a/tests/baselines/reference/declareModifierOnTypeAlias.types b/tests/baselines/reference/declareModifierOnTypeAlias.types new file mode 100644 index 00000000000..c53616fdff6 --- /dev/null +++ b/tests/baselines/reference/declareModifierOnTypeAlias.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/declareModifierOnTypeAlias.ts === +declare type Foo = string; +>Foo : string + +type Bar = number; +>Bar : number + +declare type Baz = Bar; +>Baz : number +>Bar : number + diff --git a/tests/cases/compiler/declareModifierOnTypeAlias.ts b/tests/cases/compiler/declareModifierOnTypeAlias.ts new file mode 100644 index 00000000000..0dd23f7eda8 --- /dev/null +++ b/tests/cases/compiler/declareModifierOnTypeAlias.ts @@ -0,0 +1,3 @@ +declare type Foo = string; +type Bar = number; +declare type Baz = Bar; \ No newline at end of file