Legalize external decorator for generic functions

This commit is contained in:
dcode
2019-02-22 08:25:41 +01:00
parent 06ee43e6ad
commit cc5522d6cc

View File

@ -1527,16 +1527,18 @@ export class Program extends DiagnosticEmitter {
): void { ): void {
var name = declaration.name.text; var name = declaration.name.text;
var validDecorators = DecoratorFlags.NONE; var validDecorators = DecoratorFlags.NONE;
if (!declaration.is(CommonFlags.AMBIENT)) { if (declaration.is(CommonFlags.AMBIENT)) {
validDecorators |= DecoratorFlags.EXTERNAL;
} else {
validDecorators |= DecoratorFlags.INLINE; validDecorators |= DecoratorFlags.INLINE;
} }
if (parent.kind != ElementKind.CLASS_PROTOTYPE && !declaration.is(CommonFlags.INSTANCE)) { if (!declaration.is(CommonFlags.INSTANCE)) {
validDecorators |= DecoratorFlags.GLOBAL; if (parent.kind != ElementKind.CLASS_PROTOTYPE) {
validDecorators |= DecoratorFlags.GLOBAL;
}
} }
if (!declaration.is(CommonFlags.GENERIC)) { if (!declaration.is(CommonFlags.GENERIC)) {
if (declaration.is(CommonFlags.AMBIENT)) { if (parent.kind == ElementKind.FILE && (<File>parent).source.isEntry) {
validDecorators |= DecoratorFlags.EXTERNAL;
} else if (parent.kind == ElementKind.FILE && (<File>parent).source.isEntry) {
validDecorators |= DecoratorFlags.START; validDecorators |= DecoratorFlags.START;
} }
} }