Commit graph

482 commits

Author SHA1 Message Date
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
Fred Silberberg db3bb77338
Add missing semicolon in calling conventions 2020-08-10 17:40:29 -07:00
Julien Couvreur 7d3c77ee79
Add ToString and PrintMembers to records (#3762) 2020-08-07 10:37:56 -07:00
Bill Wagner f222935330
Fix table rendering (#3773)
The previous table style worked for GFM, but was not valid for markdig.
2020-08-05 10:12:15 -04:00
Hadrian Tang 4f02d029d1
Remove erroneous backtick (#3769) 2020-08-03 10:37:30 -07:00
AlekseyTs cd3c18237b
Specify equality operators for records (#3754)
See https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-07-27.md#conclusion-1
2020-07-31 10:49:11 -07:00
Julien Couvreur a4a9e017df
Clarify some restrictions on records (#3759) 2020-07-30 23:58:06 -07:00
Bill Wagner a88d56e313
fix a number of broken links (#3750)
These were found building dotnet/docs#19736

- Add correct folders for several spec references.
- Correct casing of one anchor tag.
- Replace absolute links with relative links.
2020-07-30 14:39:47 -04:00
Rikki Gibson 5bde862ee7
Add nullable-constructor-analysis.md (#3742) 2020-07-30 10:56:00 -07:00
Neal Gafter 89bbdd101f
Move C# 9 proposals for integrated features. (#3751) 2020-07-29 14:09:31 -07:00
Youssef Victor eca37476cc
Update function-pointers.md 2020-07-29 18:07:34 +02:00
Youssef Victor 94ed97a268
Fix href 2020-07-29 18:02:19 +02:00
Julien Couvreur 0c25406d8a
Move C# 9 specs to sub-folder (#3731) 2020-07-27 22:59:33 -07:00
Rikki Gibson 28eb378734
Delete nullable-constructor-analysis.md
This file wasn't intended to be added to `master` yet
2020-07-24 13:19:48 -07:00
Rikki Gibson 1dd5317c8b Add nullable-constructor-analysis.md 2020-07-24 13:18:54 -07:00