Skip to content

Commit

Permalink
Fix cross-file links in non-proposal files (#1010)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonmeow authored Jan 7, 2022
1 parent a30a2b6 commit b7df523
Show file tree
Hide file tree
Showing 16 changed files with 43 additions and 35 deletions.
8 changes: 7 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ repos:
- id: search-and-replace
files: '\.md$'
- repo: https://github.com/google/pre-commit-tool-hooks
rev: b7dadde912123577a1b5d4bfa279ce51ed06ee49 # frozen: v1.2.0
rev: 26cc20f971cad7dee54e1fcccb960b4e19b2bdce # frozen: v1.2.1
hooks:
- id: check-copyright
args:
Expand Down Expand Up @@ -78,6 +78,12 @@ repos:
)$
- id: check-google-doc-style
- id: check-links
name: Check links in non-proposal files
exclude: ^proposals/.*$
- id: check-links
name: Check links in proposal files
args: ['--anchors-only']
files: ^proposals/.*$
- id: markdown-toc
- repo: https://github.com/codespell-project/codespell
rev: 01da43d753cdff4ea7dff952b4f5317450af31e3 # frozen: v2.1.0
Expand Down
9 changes: 5 additions & 4 deletions docs/design/expressions/as_expressions.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,10 +166,11 @@ The expression `x as U` is rewritten to `x.(As(U).Convert)()`.

## Alternatives considered

- [Do not distinguish between safe and unsafe casts](/docs/proposals/p0845.md#merge-as-and-assume_as)
- [Do not distinguish between `as` and implicit conversions](/docs/proposals/p0845.md#as-only-performs-implicit-conversions)
- [Allow `iN as bool`](/docs/proposals/p0845.md#integer-to-bool-conversions)
- [Disallow `bool as iN`](/docs/proposals/p0845.md#bool-to-integer-conversions)
- [Allow `as` to perform some unsafe conversions](/proposals/p0845.md#allow-as-to-perform-some-unsafe-conversions)
- [Allow `as` to perform two's complement truncation](/proposals/p0845.md#allow-as-to-perform-twos-complement-truncation)
- [`as` only performs implicit conversions](/proposals/p0845.md#as-only-performs-implicit-conversions)
- [Integer to bool conversions](/proposals/p0845.md#integer-to-bool-conversions)
- [Bool to integer conversions](/proposals/p0845.md#bool-to-integer-conversions)

## References

Expand Down
8 changes: 4 additions & 4 deletions docs/design/expressions/implicit_conversions.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,10 +281,10 @@ types.

## Alternatives considered

- [Provide lossy and non-semantics-preserving implicit conversions from C++](/docs/proposals/p0820.md#c-conversions)
- [Provide no implicit conversions](/docs/proposals/p0820.md#no-conversions)
- [Provide no extensibility](/docs/proposals/p0820.md#no-extensibility)
- [Apply implicit conversions transitively](/docs/proposals/p0820.md#transitivity)
- [Provide lossy and non-semantics-preserving implicit conversions from C++](/proposals/p0820.md#c-conversions)
- [Provide no implicit conversions](/proposals/p0820.md#no-conversions)
- [Provide no extensibility](/proposals/p0820.md#no-extensibility)
- [Apply implicit conversions transitively](/proposals/p0820.md#transitivity)

## References

Expand Down
10 changes: 5 additions & 5 deletions docs/design/generics/appendix-coherence.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ These last two cases are highlighted as concerns in Rust in
Since Carbon is bundling interface implementations into types, for the
convenience and expressiveness that provides, we satisfy those use cases by
giving the user control over the type of a value. This means having facilities
for defining new [compatible types](terminology#compatible-types) with different
interface implementations, and casting between those types as needed.
for defining new [compatible types](terminology.md#compatible-types) with
different interface implementations, and casting between those types as needed.

## The "Hashtable Problem"

Expand Down Expand Up @@ -213,9 +213,9 @@ This has some downsides:
type.
As a result, this doesn't make sense as the default behavior for Carbon based on
its [goals](/project/goals.md). That being said, this could be a feature added
later as opt-in behavior to either allow users to reduce code size or support
use cases that require dynamic dispatch.
its [goals](/docs/project/goals.md). That being said, this could be a feature
added later as opt-in behavior to either allow users to reduce code size or
support use cases that require dynamic dispatch.
### Rejected variation: manual conflict resolution
Expand Down
4 changes: 2 additions & 2 deletions docs/design/generics/details.md
Original file line number Diff line number Diff line change
Expand Up @@ -2099,7 +2099,7 @@ class DynamicArray(T:! Type) {
```
For context, see
["Interface type parameters and associated types" in the generics terminology document](terminology.md#interface-type-parameters-versus-associated-types).
["Interface type parameters and associated types" in the generics terminology document](terminology.md#interface-type-parameters-and-associated-types).
**Comparison with other languages:** Both
[Rust](https://doc.rust-lang.org/book/ch19-03-advanced-traits.html#specifying-placeholder-types-in-trait-definitions-with-associated-types)
Expand Down Expand Up @@ -2149,7 +2149,7 @@ interface at most once.
If instead you want a family of related interfaces, one per possible value of a
type parameter, multiple of which could be implemented for a single type, you
would use
[parameterized interfaces](terminology.md#interface-type-parameters-versus-associated-types).
[parameterized interfaces](terminology.md#interface-type-parameters-and-associated-types).
To write a parameterized version of the stack interface, instead of using
associated types, write a parameter list after the name of the interface instead
of the associated type declaration:
Expand Down
2 changes: 1 addition & 1 deletion docs/design/lexical_conventions/numeric_literals.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ The design provides a syntax that is deliberately close to that used both by C++
and many other languages, so it should feel familiar to developers. However, it
selects a reasonably minimal subset of the syntaxes. This minimal approach
provides benefits directly in line with the goal that Carbon code should be
[easy to read, understand, and write](../docs/project/goals.md#code-that-is-easy-to-read-understand-and-write):
[easy to read, understand, and write](/docs/project/goals.md#code-that-is-easy-to-read-understand-and-write):

- Reduces unnecessary choices for programmers.
- Simplifies the syntax rules of the language.
Expand Down
3 changes: 2 additions & 1 deletion docs/design/lexical_conventions/whitespace.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ The exact lexical form of Carbon whitespace has not yet been settled. However,
Carbon will follow lexical conventions for whitespace based on
[Unicode Annex #31](https://unicode.org/reports/tr31/). TODO: Update this once
the precise rules are decided; see the
[Unicode source files](/proposals/p0142.md#characters-in-identifiers) proposal.
[Unicode source files](/proposals/p0142.md#characters-in-identifiers-and-whitespace)
proposal.

Unicode Annex #31 suggests selecting whitespace characters based on the
characters with Unicode property `Pattern_White_Space`, which is currently these
Expand Down
3 changes: 2 additions & 1 deletion docs/design/lexical_conventions/words.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ The exact lexical form of words has not yet been settled. However, Carbon will
follow lexical conventions for identifiers based on
[Unicode Annex #31](https://unicode.org/reports/tr31/). TODO: Update this once
the precise rules are decided; see the
[Unicode source files](/proposals/p0142.md#characters-in-identifiers) proposal.
[Unicode source files](/proposals/p0142.md#characters-in-identifiers-and-whitespace)
proposal.

## Keywords

Expand Down
2 changes: 1 addition & 1 deletion docs/project/code_review.md
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ early on:

1. Bring another person into the review to help address the specific issue.
Typically they should at least be a code owner, and may usefully be a
[Carbon lead](groups.md#carbon-leads-1).
[Carbon lead](groups.md#carbon-leads).

2. Ask the specific question in a broader forum, such as Discord, in order to
get a broad set of perspectives on a particular area or issue.
Expand Down
4 changes: 2 additions & 2 deletions docs/project/contribution_tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@ the PR and proposal file for a new proposal. It's documented in

#### pr_comments.py

[pr_comments.py](/github/pr_comments.py) is a helper for scanning comments in
GitHub. It's particularly intended to help find threads which need to be
[pr_comments.py](/github_tools/pr_comments.py) is a helper for scanning comments
in GitHub. It's particularly intended to help find threads which need to be
resolved.
Options can be seen with `-h`. A couple key options to be aware of are:
Expand Down
6 changes: 3 additions & 3 deletions docs/project/design_style_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ conventions for the language design, where they have been established.
## General

The language design documentation follows the
[style conventions](/CONTRIBUTING.html#google-docs-and-markdown) for Carbon
[style conventions](/CONTRIBUTING.md#google-docs-and-markdown) for Carbon
documentation.

## Linking
Expand All @@ -42,7 +42,7 @@ documentation.
- Links to specific sections of a proposal should link to the repository copy
of the proposal file, using the section title or other appropriate link
text. For example,
`[Painting details](/docs/proposals/p0123.md#painting-details)`
`[Painting details](/proposals/p0123.md#painting-details)`

## Document structure

Expand Down Expand Up @@ -75,7 +75,7 @@ that were considered, along with references to the proposals in which those
designs were discussed. For example:

```md
- [Paint widgets from bottom to top](/docs/proposals/p0123.md#alternatives-considered).
- [Paint widgets from bottom to top](/proposals/p0123.md#alternatives-considered).
```

### References
Expand Down
2 changes: 1 addition & 1 deletion docs/project/groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ We use a mix of:
- [GitHub organization](https://github.com/orgs/carbon-language/people)
- [GitHub team: Contributors with label access](https://github.com/orgs/carbon-language/teams/contributors-with-label-access):
Mirrors the GitHub organization for write access.
[Manually updated](/github/update_label_access.py).
[Manually updated](/github_tools/update_label_access.py).
- [Discord access](https://discord.com/app)
- [Google group](https://groups.google.com/g/carbon-lang-contributors): Grants
Google Drive access.
Expand Down
4 changes: 2 additions & 2 deletions docs/project/principles/low_context_sensitivity.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,13 +153,13 @@ in Carbon that reflect applications of this principle:
- Carbon doesn't provide an analogy to C++'s
[`using namespace`](https://en.cppreference.com/w/cpp/language/namespace#Using-directives)
or a
["wildcard imports" mechanisms](/docs/design/code_and_name_organization/#broader-imports-either-all-names-or-arbitrary-code)
["wildcard imports" mechanisms](/proposals/p0107.md#broader-imports-either-all-names-or-arbitrary-code)
that merge the names from one namespace into another. Either would introduce
ambiguity in where a name is coming from, making the code more
context-sensitive.

- Carbon doesn't support large blocks of code
[inside a namespace declaration](/docs/design/code_and_name_organization/#scoped-namespaces),
[inside a namespace declaration](/proposals/p0107.md#scoped-namespaces),
where the reader would have to search for the beginning of the block to see
what namespace applies.

Expand Down
2 changes: 1 addition & 1 deletion docs/project/principles/one_way.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ benefits, typically as a matter of convenience for either a common use-case or a
particularly complex and important use-case. Some examples of why and where this
occurs are:

- For [performance](/docs/projects/goals.md#performance-critical-software), it
- For [performance](/docs/project/goals.md#performance-critical-software), it
may at times be necessary to provide a specialized syntax that better
supports optimization than a generic syntax.
- For
Expand Down
3 changes: 1 addition & 2 deletions docs/project/pull_request_workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,7 @@ We suggest a specific workflow to address this:
```

And create a pull request for it using the
[`gh`](/docs/project/contribution_tools.md#github_commandline_interface)
tool:
[`gh`](/docs/project/contribution_tools.md#gh-cli) tool:

```shell
gh pr create
Expand Down
8 changes: 4 additions & 4 deletions executable_semantics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ considered definitive.

The parser is implemented using the flex and bison parser generator tools.

- [`syntax.lpp`](syntax/syntax.lpp) the lexer specification
- [`syntax.ypp`](syntax/syntax.ypp) the grammar
- [`lexer.lpp`](syntax/lexer.lpp) the lexer specification
- [`parser.ypp`](syntax/parser.ypp) the grammar

The parser translates program text into an abstract syntax tree (AST), defined
in the [ast](ast/) subdirectory. The `UnimplementedExpression` node type can be
Expand All @@ -35,8 +35,8 @@ handling of the `UNIMPL_EXAMPLE` token for an example of how this is done, and
see [`unimplemented_example_test.cpp`](syntax/unimplemented_example_test.cpp)
for an example of how to test it.

The [type checker](interpreter/typecheck.h) defines what it means for an AST to
be a valid program. The type checker prints an error and exits if the AST is
The [type checker](interpreter/type_checker.h) defines what it means for an AST
to be a valid program. The type checker prints an error and exits if the AST is
invalid.

The parser and type checker together specify the static (compile-time)
Expand Down

0 comments on commit b7df523

Please sign in to comment.