diff --git a/src/compiler.ts b/src/compiler.ts index eb629cc25b..3236f589df 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -8631,6 +8631,13 @@ export class Compiler extends DiagnosticEmitter { } var classType = classReference.type; this.currentType = classType.nonNullableType; + if (classReference.kind == ElementKind.INTERFACE) { + this.error( + DiagnosticCode.Not_implemented_0, + expression.range, "Interface hidden classes" + ); + return module.unreachable(); + } if (classReference.is(CommonFlags.ABSTRACT)) { this.error( DiagnosticCode.Cannot_create_an_instance_of_an_abstract_class, diff --git a/tests/compiler/issues/2085.json b/tests/compiler/issues/2085.json new file mode 100644 index 0000000000..6523a98644 --- /dev/null +++ b/tests/compiler/issues/2085.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "AS100: Not implemented: Interface hidden classes", + "EOF" + ] +} diff --git a/tests/compiler/issues/2085.ts b/tests/compiler/issues/2085.ts new file mode 100644 index 0000000000..ac1c26437f --- /dev/null +++ b/tests/compiler/issues/2085.ts @@ -0,0 +1,3 @@ +interface Foo {} +const foo: Foo = {}; +ERROR("EOF"); \ No newline at end of file