Commit graph

513 commits

Author SHA1 Message Date
Rikki Gibson 7d97a3f373
Add improved-definite-assignment.md (#4468) 2021-02-25 17:03:15 -08:00
Youssef Victor 93404fdb73
Fix PrintMembers return type (#4464) 2021-02-24 12:27:05 -08:00
AlekseyTs 834bcec4d5
Update syntax for Global Using Directive based on LDM decision. 2021-02-23 14:01:39 -08:00
Julien Couvreur 224a2ffa41
Update record-structs.md 2021-02-18 16:52:01 -08:00
Julien Couvreur 1f5b1dc19d
Record decisions for record structs (#4437) 2021-02-18 10:12:23 -08:00
Fred Silberberg 766e12d62c
Remove static delegates proposal (#4448) 2021-02-18 09:55:02 -08:00
AlekseyTs 5de77d1ea3
Add proposal for Global Using Directive (#4449) 2021-02-18 08:33:44 -08:00
Hugo Protsch 660f5a2e1c
Fix Typo (#4438) 2021-02-12 15:59:31 -08:00
Julien Couvreur ec31c2771e
Update async-method-builders.md (#4351) 2021-02-08 17:27:45 -08:00
Fred Silberberg 6ab8409a32
Function pointer type inference (#4310) 2021-01-25 11:08:11 -08:00
Julien Couvreur a9b70c6ee1
Spec for record structs (#4307) 2021-01-16 16:11:06 -08:00
Zhenwei Wu 6c631c0f39
Fix minor error in proposal that affects docs (#4239)
dotnet/docs#21969.
2020-12-16 08:29:22 -08:00
Joseph Musser efac0d1e90
Fix typo 'retconn' (#4233) 2020-12-14 20:33:50 -08:00
Jared Parsons 8cf85e8021
Parameter does not escape annotation (#3961)
* Parameter does not escape annotation

This updates the low level struct proposal section on annotations for
parameters that do not escape. This is intended to remove low level
friction points that result from using `ref struct` as arguments to
instance methods on `ref struct`.

* Update proposals/low-level-struct-improvements.md

Co-authored-by: Fred Silberberg <fred@silberberg.xyz>

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

Co-authored-by: Fred Silberberg <fred@silberberg.xyz>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
2020-12-03 20:36:26 -08:00
Jared Parsons 1eef8e0f64
NRT spec updates (#4126)
* NRT spec updates

This makes the following updates to the NRT spec

- Examples for scenarios that commonly trip up customers
- Clarification on when expressions have the null state "maybe default"
  vs. "maybe null"
- Minor langauge cleanup

* PR feedback

* PR feedback
2020-11-17 12:32:02 -08:00
Stephen Toub 1fccd6246b
Add comments on localized pooling 2020-11-11 09:39:38 -05:00
Yair Halberstadt 38908f71e5
Add proposal for pattern matching Span<char> on a constant string (#4068) 2020-11-10 15:10:17 -08:00
Julien Couvreur 00d9d791b6
Refresh NRT spec (#4104) 2020-11-09 21:26:43 -08:00
Stephen Toub 796742db0d
Fix tabs instead of spaces in async method builders proposal 2020-11-08 15:22:18 -05:00
Stephen Toub 4650fd6202
Remove erroneous [Pool] portion of async method builders proposal 2020-11-08 15:21:17 -05:00
Rikki Gibson 29b0f41953
Add nullable parameter default proposal (#4101) 2020-11-06 09:57:45 -08:00
Stephen Toub 4c8b0a1c81
Add proposal for per-method AsyncMethodBuilders (#4105)
* Add async methods proposal

* Address PR feedback
2020-11-05 17:58:17 -05:00
Jared Parsons 475c75bfab
Move task like proposal to csharplang (#4107)
Moving the task-like proposal from roslyn to csharplang

https://github.com/dotnet/roslyn/blob/master/docs/features/task-types.md
2020-11-05 14:23:43 -08:00
Julien Couvreur 29df547564
Fork NRT speclet (#4100) 2020-11-04 12:05:09 -08:00
Fred Silberberg 22ab7021c3
Add init accessors in readonly structs and readonly properties (#3915) 2020-11-02 12:55:26 -08:00
Youssef Victor 7125a8428a
Fix typo (is -> if) (#4091) 2020-10-31 11:56:08 -07:00
Julien Couvreur b2b83eed29
Disallow unsafe types for record parameters (#4077) 2020-10-29 22:17:22 -07:00
Yair Halberstadt 75ea1d741f
Allow trailing comma after subpatterns (#4069) 2020-10-27 10:39:10 -07:00
Charles Stoner 9807f9b2e2
Add proposals/csharp-9.0/unconstrained-type-parameter-annotations.md (#4043) 2020-10-26 13:19:24 -07:00
Julien Couvreur 0d9762aa9f
Allow semi-colon after block body for record declarations (#4060)
Since we allow `class C { };`
2020-10-23 10:52:39 -07:00
Petr Kulikov 94b8189f4a
Covariant returns - typo fixes (#4045) 2020-10-21 10:30:43 -04:00
Charles Stoner a0b59a6768
Add proposals/csharp-8.0/shadowing-in-nested-functions.md (#4036)
* Add proposals/csharp-8.0/shadowing-in-nested-functions.md

* Use enclosing method rather than scope

* Misc.
2020-10-19 12:56:27 -07:00
Mrxx99 f6a4820041
Updated records in proposal "discriminated-unions" (#4014)
Changed "data class" in examples to "record" and some other adjustments to conform more with records.
Also swapped position of "partial" and "abstract" because apparently the compiler only likes it the other way.
To get the examples to compile the classes that contain the records ("Shape", "Binary" and "Expr") should also be changed to record but I left that out for now.
2020-10-15 10:51:54 -07:00
WhiteBlackGoose 7014365bd8
System.StringBuilder -> System.Text.StringBuilder (#3976) 2020-10-06 07:59:50 -07:00
Damien Guard 23c9e13493
Add missing , to record_base rule (#3972) 2020-10-05 09:49:56 -07:00
Damien Guard 6bfe301e79
Update records to correct pubic to public (#3971) 2020-10-05 08:04:38 -07:00
Jared Parsons 77b2ab88a0
Proposal: Low level struct improvements (#3936)
* Proposal: Low level struct improvements

This design covers adding the following features to C# for low level
struct performance improvements:

- Allowing `ref struct` to contain `ref` fields.
- Allowing `struct` and `ref struct` to return `ref` to their fields.
- Allowing safe fixed buffers for unmanaged and managed types.

Note: the section on providing parameter escape notations is incomplete
at this time. I will send a PR in the future once I finalize this
portion. Feel free to still leave comments though.

Iterations

* Rename to ThisRefEscapes

The name `[RefEscapes]` was causing a lot of confusion in the
discussions. People were mis-interpretting it as a general feature that
could apply to other constructs when in reality it's a very specific and
targetted feature. Renaming to `[ThisRefEscapes]` to make it clear this
is a very targetted feature.

* Allow heap inputs

Based on feedback from several people I've decided that we need to make
the rules for `ref` fields more flexible when the values being passed
around are known to refer to the heap. In those cases there is simply no
reason to restrict the created `ref struct` as it is always
*ref-safe-to-escape* to the enclosing method as well as not requiring
any adjustment to the method invocation rules.

This does mean that we need to add the notion of "refers to the heap" to
the span safety document. That doesn't change any assumptions there.
It's just that before this change the notion of "refers to the heap"
wasn't necessary to describe our safety rules.


Co-authored-by: Ruikuan <liruikuan@outlook.com>
Co-authored-by: Joseph Musser <me@jnm2.com>
2020-09-29 08:31:01 -07:00
Youssef Victor b2699bff42
Update native integers conversions (#3941) 2020-09-25 09:45:17 -07:00
Julien Couvreur 3f901fa303
Exclude static fields and setter-only properties from PrintMembers (#3919) 2020-09-21 10:19:52 -07:00
Youssef Victor ad94ce8053
Update records spec (#3918) 2020-09-21 09:56:09 -07:00
AlekseyTs d6109bf586
Clarify that a copy constructor doesn't prevent an automatic addition of a default instance constructor for a record. (#3913) 2020-09-21 05:31:23 -07:00
AlekseyTs a87af899c0
Allow record's parameter_list to be empty. (#3900)
* Allow record's `parameter_list` to be empty.

Based on https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-08-24.md#base-calls-on-parameterless-records
2020-09-18 10:13:26 -07:00
Neal Gafter 2661a4b395
Change to 7.5.4.2 Grammar Ambiguities in patterns spec to support type pattern. 2020-09-16 11:32:32 -07:00
Neal Gafter fcf884f7f8
Update pattern spec for narrowed type of ITuple pattern (#3891)
Fixes https://github.com/dotnet/roslyn/issues/44102
2020-09-16 09:27:34 -07:00
Petr Kulikov 8203726f00
Minor grammar and typo fixes (#3370) 2020-09-16 09:18:49 -07:00
Youssef Victor ca09fc178f
Update records spec with new warning (#3883)
* Update records spec with new warning

* Update proposals/csharp-9.0/records.md

Co-authored-by: Fred Silberberg <fred@silberberg.xyz>

Co-authored-by: Fred Silberberg <fred@silberberg.xyz>
2020-09-11 16:07:40 -07:00
Youssef Victor 9fb76a990c
Grammar fixes (#3827)
Co-authored-by: Fred Silberberg <fred@silberberg.xyz>
2020-09-10 09:57:50 -07:00
Bill Wagner 8df4f29c1c
fix broken link (#3865)
The path is needed for the spec link
2020-09-09 09:36:14 -07:00
Youssef Victor d52960a47b
Fix broken link (#3861) 2020-09-09 09:35:31 -07:00
Julien Couvreur c3df20406f
Document features shipping in C# 9.0 (#3850) 2020-09-08 11:17:39 -07:00