Commit graph

496 commits

Author SHA1 Message Date
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
Julien Couvreur f38867ee6e
Avoid boxing and extra space when printing records 2020-08-24 13:34:27 -07:00
Fred Silberberg 5d40e91f04
Use clearer terminology 2020-08-21 13:30:51 -07:00
Genevieve Warren 06ee75e6e3
Fix/remove broken links (#3801)
* Fix broken link

* Update module-initializers.md

* Update module-initializers.md

* Update target-typed-new.md

* Make link relative

Co-authored-by: Youssef Victor <31348972+Youssef1313@users.noreply.github.com>

* Update proposals/csharp-9.0/module-initializers.md

Co-authored-by: Bill Wagner <wiwagn@microsoft.com>

Co-authored-by: Youssef Victor <31348972+Youssef1313@users.noreply.github.com>
Co-authored-by: Bill Wagner <wiwagn@microsoft.com>
2020-08-21 11:08:25 -04:00
Bill Wagner cc02cda55f
Markdig syntax fix
Markdig requires a blank line before the start of a table.
2020-08-18 21:17:40 -04:00
Rikki Gibson a69376ba67
Update nullable-constructor-analysis.md (#3794) 2020-08-13 16:29:11 -07:00
Rolf Bjarne Kvinge a7b84ea928
Fix typo. (#3792) 2020-08-12 08:03:52 -07:00
Fred Silberberg eade6b9b55
Remove bad void* example. 2020-08-10 17:50:13 -07:00