Commit graph

503 commits

Author SHA1 Message Date
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
Christopher Watford
7cf8d52977
Restore missing code example (#3862)
Follow on to eade6b9#diff-c5d292723e1e43121acb1f8360545e53
2020-09-08 09:25:42 -07:00
Charles Stoner
cc11a3bb7a
Recent updates for native integers (#3856) 2020-09-08 09:18:46 -07:00
Youssef Victor
3a6c79012a
Add missing commas (#3855) 2020-09-06 10:00:20 -07:00
Youssef Victor
95adf054b9
Add H1 to convariant returns (#3846) 2020-09-04 11:14:13 -07:00
Neal Gafter
ac14d87c16
Update spec for covariant returns. (#3843) 2020-09-03 16:57:07 -07:00
Neal Gafter
dd40959c46
Create empty-params-array.md 2020-09-03 14:44:12 -07:00
Fredric Silberberg
3213aa0993
Update incorrect examples. 2020-08-26 10:18:18 -07:00
Fredric Silberberg
3e179c04d4
Address PR feedback:
1. Simplify the parameter/return requirements.
2. Clarify the intent around invalid imported metadata.
2020-08-25 17:10:34 -07:00
Fredric Silberberg
55df4c7f82
Update with feedback 2020-08-25 16:44:57 -07:00
Fredric Silberberg
7ff6cb3bb7
Clarify the rules on UnmanagedCallersOnly 2020-08-25 15:48:55 -07:00