Skip to content

Commit 9fa1c0a

Browse files
committed
document CodegenTrait
1 parent dcf4673 commit 9fa1c0a

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

docs/_data/nav_docs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
- id: classes-codegen-class-base
2222
- id: classes-codegen-interface
2323
- id: classes-codegen-class
24+
- id: classes-codegen-trait
2425
- id: classes-codegen-enum
2526

2627
# n title:, 1 items: per title:, n id: per items:
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
docid: classes-codegen-trait
3+
title: CodegenTrait
4+
layout: docs
5+
permalink: /docs/classes/CodegenTrait/
6+
---
7+
8+
A `CodegenTrait` is created with `$factory->codegenInterface(name)`; it can
9+
be marked as implementing interfaces with
10+
`->addInterface($codegen_implements_interface)`, and also adds two Hack-specific
11+
features on top of `CodegenBaseClass`:
12+
13+
- `->addRequireClass(string $class)`: only allow the trait to be used by `$class`
14+
or subclasses of `$class`.
15+
- `->addRequireInterface(string $class)`: only allow the trait to be used classes
16+
that implement the specified interface.

0 commit comments

Comments
 (0)