Skip to content

Commit 4a83eb0

Browse files
bluetarpmediahsutterDyXelgregmarr
authored
Fix typos in contracts.md (#1017)
* Initial files to test MkDocs with Material * Update checkout version * Trying checkout with no version * Back to v3 * Try renaming to docs * Test push to renamed docs branch * Try moving mkdocs.yml to root to unblock CI * Further cleanup to get things in the right directories * Finish moving from `/docs/docs` to `/docs` Added local hosting instructions in the YAML file This renders beautifully locally, but for some reason it doesn't render properly on GitHub Pages yet. One possible reason is the `pages-build-deployment` workflow that GitHub Pages created on my initial attempt to use Pages (before trying MkDocs) is still running (and I can't figure out how to get rid of it) and it appears to be interfering with the `docs` workflow I created for MkDocs If someone has ideas on how to debug this, please open an issue or email me - thx! * Add "Cppfront reference," and start writing "Cpp2 reference" * Merged documentation from blog posts, and unary operators `_` wildcard, including in `inspect` and explicit discard Named `break` and `continue` `type` declaration syntax Explicit `this` `operator=` Chained comparisons Metafunctions overview `@enum` and `@flag_enum` `@union` * Integrate links to wiki design notes * Add more sections Type qualifiers Binary operators `is` and update chained comparisons * Add `as` and `inspect` * Document declarations, improve `inspect` discussion * Fix a few typos * Add Hello-world xref * Update mkdocs.yml * Improve mixed files examples and flow * Overview editorial improvements * Minor cleanup * docs: fix some typos and confusing wording (#976) * docs: fix some typos and confusing wording * restore std::ssize * Fix table of content display -> rhs of page * Add section navigation Reorganize sources Fix long code lines to avoid horizontal scroll bars * Organize the welcome info into three pages And try to use extra CSS to tweak the navigation pane * Disable regression tests on this branch * Add more types and `operator=` material And do further cleanup on the docs structure * Add keywords, objects, and heap allocation * Add `main` * Reviewing cppfront docs (#982) * Reviewing cppfront docs * integrations.md * expressions and objects * Fix "lines 8, 9, and 15" wording * Mention UFCS * Function outputs and explicit discard * Add definite initialization section And: - add placeholder for contracts - add some is/as side-by-side examples - add parameter passing styles * Update CTAD description in hello-world.md (#984) Signed-off-by: Neil Henderson <[email protected]> * Embiggen text font, add `move` and `out` arguments And code block cleanup: - highlight key lines in all code blocks - remove redundant "Example:" in code block titles - add a chained comparisons example * Fix small typo in common.md (#985) Signed-off-by: Neil Henderson <[email protected]> * Changes to expressions.md (#986) * Update expressions.md Signed-off-by: Neil Henderson <[email protected]> * Minor tweak to not lose "dynamic" types --------- Signed-off-by: Neil Henderson <[email protected]> Co-authored-by: Herb Sutter <[email protected]> * Another round of docs updates (#983) * types * metafunctions * Taking a pass over the updates, and adding that `that` must be `in` or `move` * Remove TODO comment for now Not sure of its meaning, we can add again later --------- Co-authored-by: Herb Sutter <[email protected]> * Add syntax highlighting for inline code blocks using `#!cpp` shebangs Note: I deliberately did not add shebangs for: - `inline code` that wouldn't benefit from them (e.g., had nothing significant to highlight) so as to keep the Markdown more readable - `inline code` that I didn't want to highlight, mainly Cpp2 code that used Cpp1 reserved keywords in a non-reserved way (mainly metafunctions like @enum and @union) * Move function calls to expressions * Add capture section And add Cpp1 lowering notes for parameter passing * Add Mermaid build diagram * Add TODO for `member = _;` * Add interpolation formatting, and other minor cleanup * Expand comparisons section Also add short anchor names to all subsections that don't already have them And make anchor names all lowercase-like-this * Update declarations.md (#988) Signed-off-by: Neil Henderson <[email protected]> * Follow up merge with additional examples, and update highlighted linenos * Update Capture sections in expressions.md (#987) * Update expressions.md Signed-off-by: Neil Henderson <[email protected]> * Update highlighted linenos And a couple of other fixes, including that I meant to write "ish" not "sh" (fixing my own typo!) --------- Signed-off-by: Neil Henderson <[email protected]> Signed-off-by: Herb Sutter <[email protected]> Co-authored-by: Herb Sutter <[email protected]> * More docs reviews (#990) * Add more functions material Return values Branches Loops Template parameters * Changes to functions.md (#998) * Update functions.md Signed-off-by: Neil Henderson <[email protected]> * Tweak comments for divide example --------- Signed-off-by: Neil Henderson <[email protected]> Co-authored-by: Herb Sutter <[email protected]> * Fill in some TODO's * Add requires, namespaces, using, and namespace/type/function/object aliases * Update aliases.md (#1005) Signed-off-by: Neil Henderson <[email protected]> * Add generality notes: Function defaults, and function <-> block/stmt unification * Merge previous commit * Update functions.md (#1011) Signed-off-by: Neil Henderson <[email protected]> * Update declarations.md (#1010) Signed-off-by: Neil Henderson <[email protected]> * Complete the metafunctions section * Update metafunctions.md (#1015) Signed-off-by: Neil Henderson <[email protected]> * Add contracts documentation * Remove modules documentation stub since that's not supported yet * Fix comment typo * Update contracts.md Signed-off-by: Neil Henderson <[email protected]> --------- Signed-off-by: Neil Henderson <[email protected]> Signed-off-by: Herb Sutter <[email protected]> Co-authored-by: Herb Sutter <[email protected]> Co-authored-by: Dylam De La Torre <[email protected]> Co-authored-by: gregmarr <[email protected]>
1 parent f65c153 commit 4a83eb0

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

docs/cpp2/contracts.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ For example:
3131

3232
``` cpp title="Precondition and postcondition examples" hl_lines="2 3"
3333
insert_at: (container, where: int, val: int)
34-
pre<bounds>( 0 <= where <= vec.ssize(), "position (where)$ is outside 'val'" )
34+
pre<Bounds>( 0 <= where <= container.ssize(), "position (where)$ is outside 'container'" )
3535
post ( container.ssize() == container.ssize()$ + 1 )
3636
= {
3737
_ = container.insert( container.begin()+where, val );
@@ -42,7 +42,7 @@ In this example:
4242
4343
- The `$` captures are performed before entering the function.
4444
45-
- The precondition is part of the `Bounds` safety contract group and is checked before entering the function. If the check fails, say because `where` is `#!cpp -1`, then `#!cpp cpp2::Bounds.report_violation("position -1 is outside 'val'")` is called.
45+
- The precondition is part of the `Bounds` safety contract group and is checked before entering the function. If the check fails, say because `where` is `#!cpp -1`, then `#!cpp cpp2::Bounds.report_violation("position -1 is outside 'container'")` is called.
4646
4747
- The postcondition is part of the `Default` safety contract group. If the check fails, then `#!cpp cpp2::Default.report_violation()` is called.
4848
@@ -57,7 +57,7 @@ Contract groups are useful to enable or disable or [set custom handlers](#violat
5757
5858
You can create new contract groups just by creating new objects that have a `.report_violation` function. The object's name is the contract group's name. The object can be at any scope: local, global, or heap.
5959
60-
For example, here are some ways to use contract groups, for convenience using [`cpp2::contract_group`](#violation_handlers) which is a convenient group type:
60+
For example, here are some ways to use contract groups of type [`cpp2::contract_group`](#violation_handlers), which is a convenient group type:
6161
6262
``` cpp title="Using contract groups" hl_lines="1 4 6 10-12"
6363
group_a: cpp2::contract_group = (); // a global group
@@ -75,7 +75,7 @@ func: () = {
7575
}
7676
```
7777

78-
You can make all the objects in a class hierarchy into a contract group by having a `.report_violation` function in a base class, and then writing contracts in that hierarchy using `<this>` as desired. This technique used in cppfront's own reflection API:
78+
You can make all the objects in a class hierarchy into a contract group by having a `.report_violation` function in a base class, and then writing contracts in that hierarchy using `<this>` as desired. This technique is used in cppfront's own reflection API:
7979

8080
``` cpp title="Example of using 'this' as a contract group, from cppfront 'reflect.h2'" hl_lines="8 9"
8181
function_declaration: @copyable type =

0 commit comments

Comments
 (0)