Skip to content

Commit 1ec4461

Browse files
committed
Fully support @abstract tag
1 parent 37e7aa9 commit 1ec4461

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- Added `markdownLinkExternal` option to treat `http[s]://` links in markdown documents and comments as external to be opened in a new tab, #2679.
66
- Added `navigation.excludeReferences` option to prevent re-exports from appearing in the left hand navigation, #2685.
7+
- Added support for the `@abstract` tag, #2692.
78

89
### Bug Fixes
910

src/lib/converter/plugins/CommentPlugin.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,15 @@ export class CommentPlugin extends ConverterComponent {
192192
comment.removeModifier("@interface");
193193
}
194194

195+
if (comment.hasModifier("@abstract")) {
196+
if (reflection.kindOf(ReflectionKind.SomeSignature)) {
197+
reflection.parent!.setFlag(ReflectionFlag.Abstract);
198+
} else {
199+
reflection.setFlag(ReflectionFlag.Abstract);
200+
}
201+
comment.removeModifier("@abstract");
202+
}
203+
195204
if (comment.hasModifier("@private")) {
196205
reflection.setFlag(ReflectionFlag.Private);
197206
if (reflection.kindOf(ReflectionKind.CallSignature)) {

src/test/converter2/issues/gh2693.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export abstract class Foo {
2+
abstract foo(): void;
3+
4+
abstract x: number;
5+
}
6+
7+
/** @abstract */
8+
export class Bar {
9+
/** @abstract */
10+
foo() {}
11+
12+
/** @abstract */
13+
x!: number;
14+
}

src/test/issues.c2.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,4 +1707,15 @@ describe("Issue Tests", () => {
17071707
// had a chance to copy the data's @param to the parameter.
17081708
equal(data2.comment, undefined);
17091709
});
1710+
1711+
it("#2693 handles the @abstract tag", () => {
1712+
const project = convert();
1713+
ok(query(project, "Foo.foo").flags.isAbstract);
1714+
ok(!querySig(project, "Foo.foo").flags.isAbstract);
1715+
ok(query(project, "Foo.x").flags.isAbstract);
1716+
1717+
ok(query(project, "Bar.foo").flags.isAbstract);
1718+
ok(!querySig(project, "Bar.foo").flags.isAbstract);
1719+
ok(query(project, "Bar.x").flags.isAbstract);
1720+
});
17101721
});

0 commit comments

Comments
 (0)