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); } 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/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 +} 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