Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix broken links #4560

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions meetings/2020/LDM-2020-09-09.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## Agenda

1. [Triage issues still in C# 9.0 candidate](#triage-issues-still-in-C#-9.0-candidate)
2. [Triage issues in C# 10.0 candidate](#Triage-issues-in-C#-10.0-candidate)
1. [Triage issues still in C# 9.0 candidate](#triage-issues-still-in-c-90-candidate)
2. [Triage issues in C# 10.0 candidate](#triage-issues-in-c-100-candidate)

# Quote(s) of the Day

Expand Down
6 changes: 3 additions & 3 deletions proposals/GlobalUsingDirective.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ Changes are made to the algorithm determining the meaning of a *namespace_or_typ

This is the relevant bullet point with proposed additions (which are **in bold**):
* If the *namespace_or_type_name* is of the form `I` or of the form `I<A1, ..., Ak>`:
* If `K` is zero and the *namespace_or_type_name* appears within a generic method declaration ([Methods](classes.md#methods)) and if that declaration includes a type parameter ([Type parameters](classes.md#type-parameters)) with name `I`, then the *namespace_or_type_name* refers to that type parameter.
* Otherwise, if the *namespace_or_type_name* appears within a type declaration, then for each instance type `T` ([The instance type](classes.md#the-instance-type)), starting with the instance type of that type declaration and continuing with the instance type of each enclosing class or struct declaration (if any):
* If `K` is zero and the *namespace_or_type_name* appears within a generic method declaration ([Methods](../spec/classes.md#methods)) and if that declaration includes a type parameter ([Type parameters](../spec/classes.md#type-parameters)) with name `I`, then the *namespace_or_type_name* refers to that type parameter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if we want to make these changes in GlobalUsingDirective.md because the links are correct in context of the section where this text is supposed to go. The purpose of the document is to show the proposed diff, and no changes to the links are proposed. Same probably applies to changes in constant_interpolated_strings.md.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AlekseyTs Can you elaborate more on "the links are correct in context of the section where this text is supposed to go"?

Does that mean in the future when the proposal is part of the actual spec?

If so, shouldn't this be done when this happens in future?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless the section is a new section (doesn't have a link right after the header), the non-bold text is not that interesting, it is a direct quote from the original spec and its purpose is to establish context for proposed additions (in bold). I intentionally didn't make any other changes or "fixes".

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see now it's a direct copy from spec/basic-concepts.md, but I don't see why the link shouldn't be fixed? This defeats the purpose of this being a "link".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am fine with that. That link is unimportant here.

* Otherwise, if the *namespace_or_type_name* appears within a type declaration, then for each instance type `T` ([The instance type](../spec/classes.md#the-instance-type)), starting with the instance type of that type declaration and continuing with the instance type of each enclosing class or struct declaration (if any):
* If `K` is zero and the declaration of `T` includes a type parameter with name `I`, then the *namespace_or_type_name* refers to that type parameter.
* Otherwise, if the *namespace_or_type_name* appears within the body of the type declaration, and `T` or any of its base types contain a nested accessible type having name `I` and `K` type parameters, then the *namespace_or_type_name* refers to that type constructed with the given type arguments. If there is more than one such type, the type declared within the more derived type is selected. Note that non-type members (constants, fields, methods, properties, indexers, operators, instance constructors, destructors, and static constructors) and type members with a different number of type parameters are ignored when determining the meaning of the *namespace_or_type_name*.
* If the previous steps were unsuccessful then, for each namespace `N`, starting with the namespace in which the *namespace_or_type_name* occurs, continuing with each enclosing namespace (if any), and ending with the global namespace, the following steps are evaluated until an entity is located:
Expand Down Expand Up @@ -188,7 +188,7 @@ https://github.com/dotnet/csharplang/blob/master/spec/namespaces.md#namespace-al
Changes are made to the algorithm determining the meaning of a *qualified_alias_member* as follows.

This is the relevant bullet point with proposed additions (which are **in bold**):
* Otherwise, starting with the namespace declaration ([Namespace declarations](namespaces.md#namespace-declarations)) immediately containing the *qualified_alias_member* (if any), continuing with each enclosing namespace declaration (if any), and ending with the compilation unit containing the *qualified_alias_member*, the following steps are evaluated until an entity is located:
* Otherwise, starting with the namespace declaration ([Namespace declarations](../spec/namespaces.md#namespace-declarations)) immediately containing the *qualified_alias_member* (if any), continuing with each enclosing namespace declaration (if any), and ending with the compilation unit containing the *qualified_alias_member*, the following steps are evaluated until an entity is located:

* If the namespace declaration or compilation unit contains a *using_alias_directive* that associates `N` with a type, **or, when a compilation unit is reached, the program contains a *global_using_alias_directive* that associates `N` with a type,** then the *qualified_alias_member* is undefined and a compile-time error occurs.
* Otherwise, if the namespace declaration or compilation unit contains an *extern_alias_directive* or *using_alias_directive* that associates `N` with a namespace, ***or, when a compilation unit is reached, the program contains a *global_using_alias_directive* that associates `N` with a namespace,** then:
Expand Down
2 changes: 1 addition & 1 deletion proposals/constant_interpolated_strings.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Constant expressions occur in the contexts listed below. In these contexts, a co
* Dimension lengths in an array creation expression ([Array creation expressions](../spec/expressions.md#array-creation-expressions)) that includes an initializer.
* Attributes ([Attributes](../spec/attributes.md)).

An implicit constant expression conversion ([Implicit constant expression conversions](conversions.md#implicit-constant-expression-conversions)) permits a constant expression of type `int` to be converted to `sbyte`, `byte`, `short`, `ushort`, `uint`, or `ulong`, provided the value of the constant expression is within the range of the destination type.
An implicit constant expression conversion ([Implicit constant expression conversions](../spec/conversions.md#implicit-constant-expression-conversions)) permits a constant expression of type `int` to be converted to `sbyte`, `byte`, `short`, `ushort`, `uint`, or `ulong`, provided the value of the constant expression is within the range of the destination type.

## Drawbacks
[drawbacks]: #drawbacks
Expand Down