Commit graph

389 commits

Author SHA1 Message Date
AlekseyTs 0e42c53aa5
Clarify some aspects for record constructors (#3548) 2020-06-10 08:46:46 -07:00
Andy Gocke 5c9b8f27bd
Update records.md (#3547) 2020-06-08 14:01:34 -07:00
Andy Gocke 100d3f7f04
Bring records proposal up to date (#3527)
Try to bring the proposal in line with LDM decisions. Inheritance is somewhat described, but there
have been no affirmative decisions by LDM so this is still in flux
2020-06-04 12:18:43 -07:00
Andy Gocke 6c404867b9
Add spec for nominal records (#3520) 2020-06-02 14:21:18 -07:00
Neal Gafter 41e377c7fa
Update target-typed conditional expression spec. (#3503) 2020-05-31 14:29:44 -07:00
Andy Gocke ae11413106 Move old records proposals to rejected/ and rename current proposal 2020-05-30 12:24:13 -07:00
Andy Gocke 04f998e2f9
Update records-wip.md (#3505) 2020-05-30 12:21:00 -07:00
Andy Gocke 300226c009
Update spec for record value equality (#3396) 2020-05-24 12:25:51 -07:00
Neal Gafter e355841daa
Update target-typed-conditional-expression.md
Adjust specification.
2020-05-21 14:53:19 -07:00
Neal Gafter 125539b88d
Add doc for C# 6.0 struct autoprop initialization (#3459) 2020-05-18 16:36:57 -07:00
Jaliya Udagedara c2df2ee72f
Update constructor parameters (#3466) 2020-05-17 10:12:44 -07:00
Matt Styles c2fe8f1d15
Updated status of null coalescing assignment from proposed to implementation completed (#3451)
* Updated status of null coalescing assignment from proposed to implementation completed

The feature is available in C# 8. I can't see guidance on what should be updated in these docs to reflect that, so not sure if what I've changed is what should be changed!

* Update null-coalescing-assignment.md

Marking all stages of null coalescing assignment proposal as completed with checkbox filling
2020-05-12 14:41:23 -07:00
AlekseyTs c657de69f5
Providing access to command line arguments within top-level statements 2020-05-09 09:43:55 -07:00
Neal Gafter a17f4c8ba8
constant pattern is a constant expression. 2020-05-06 14:13:20 -07:00
Neal Gafter c9ae01e03b
Update target-typed-conditional-expression.md 2020-05-05 16:16:39 -07:00
Neal Gafter 347c6665f7
Update target-typed-conditional-expression.md 2020-05-05 16:15:36 -07:00
Alireza Habibi e006b4808d
Permit init-only initialization in attribute usages (#3425) 2020-05-05 12:47:03 -07:00
Andy Gocke c30039481e
Update records-wip.md (#3353)
Add info for the `with` expression
2020-04-30 10:28:24 -07:00
Rikki Gibson 0cec4e00c3
Module initializers (#3392)
Co-authored-by: Fred Silberberg <fred@silberberg.xyz>
2020-04-30 10:03:12 -07:00
Julien Couvreur ab0873759f
Update init.md 2020-04-26 08:55:22 -07:00
Julien Couvreur cbf73854a6
Tweaks to init-only speclet (#3398) 2020-04-26 08:28:51 -07:00
Neal Gafter f1d43aade5
Move specification from #2844 to proposals. (#3394) 2020-04-24 16:58:39 -07:00
Rikki Gibson 64566a1688
Update extending-partial-methods.md (#3386) 2020-04-23 13:06:39 -07:00
Julien Couvreur fea3e4f374
Update modreq type name 2020-04-22 15:34:43 -07:00
Julien Couvreur 356ee04506
Rename simple programs (#3382) 2020-04-22 10:38:05 -07:00
David Pine 7f1c2a6fe4
Added details and examples for null guard guidance (#3381)
* Added details and examples for null guard guidance

* Update proposals/csharp-8.0/nullable-reference-types.md

Co-Authored-By: Bill Wagner <wiwagn@microsoft.com>

Co-authored-by: Bill Wagner <wiwagn@microsoft.com>
2020-04-22 13:11:13 -04:00
Jared Parsons 5c7cc61921
Extending partial methods (#3379)
* Copy from LDM proposal

* Partial Methods

* Put document in right directory

* Cleanup

* Typo

* Apply suggestions from code review

Co-Authored-By: Joseph Musser <me@jnm2.com>

Co-authored-by: Joseph Musser <me@jnm2.com>
2020-04-22 09:39:24 -07:00
Jared Parsons 3f177e90b1
Init only proposal document (#3367)
* Really rough draft

* modreq vs. attributes

Finished up the section detailing using attributes vs. modreq. Decided
to make it an open question for now vs. a consideration. I felt less
strongly about it after writing it. I still do feel quite passionate
though about this with validators.

* Summary and motivation added

Got the basic summary and motivation added. Feeling good about the
premise here.

* Detailed design section

This ended up persuading me that `init` should be on the `set` method,
not the property itself. There is just too much in common with the
`readonly` modifier here. Plus if we ever decide to include the concept
of `init` members as a general feature then `init` would be required to
be on the `set`.

* Encoding discussions written

* Almost there

* Initial draft completed

* Remove init type modifier

After discussion in LDM we've decide against this as a feature. Reasons
captured in the document.

* Updated all notes

* Respond to LDM decisions

This updates to the following two LDM decisions:
1. Disallow `init` on fields
1. Use `init` instead of `init set`

* Cleaned up emit scenarios

* Apply suggestions from code review

Co-Authored-By: Fred Silberberg <fred@silberberg.xyz>

* Addressed some feedback

* Finish up PR feedback

Finish up the PR feedback on the proposal

* Typo

* PR feedback

* Apply suggestions from code review

Lots of typos 😄

Co-Authored-By: Tiago César Oliveira <4922781+tiagocesar@users.noreply.github.com>
Co-Authored-By: Patrick Westerhoff <PatrickWesterhoff@gmail.com>
Co-Authored-By: Steve Ognibene <steve.ognibene@namely.com>
Co-Authored-By: Viacheslav Ivanov <viacheslav.ivanov@gmail.com>

* Apply suggestions from code review

Co-Authored-By: Julien Couvreur <jcouv@users.noreply.github.com>
Co-Authored-By: Fred Silberberg <fred@silberberg.xyz>

Co-authored-by: Fred Silberberg <fred@silberberg.xyz>
Co-authored-by: Tiago César Oliveira <4922781+tiagocesar@users.noreply.github.com>
Co-authored-by: Patrick Westerhoff <PatrickWesterhoff@gmail.com>
Co-authored-by: Steve Ognibene <steve.ognibene@namely.com>
Co-authored-by: Viacheslav Ivanov <viacheslav.ivanov@gmail.com>
Co-authored-by: Julien Couvreur <jcouv@users.noreply.github.com>
2020-04-20 20:52:29 -07:00
Fred Silberberg 71a1696e3a
Add metadata representation section for in and out (#3368) 2020-04-20 13:56:28 -07:00
Neal Gafter a993c653f5
Add proposal for target-typed conditional expression. (#3363) 2020-04-20 11:46:15 -07:00
Neal Gafter 6901635c38
Add draft spec for C# pattern-matching changes. (#3361) 2020-04-17 16:03:52 -07:00
AlekseyTs 1ecebc412f
Allow returning an integer from a Simple Program (#3342) 2020-04-17 10:20:23 -07:00
Charles Stoner 583bdd220f
Native-sized integers proposal (#2833) 2020-04-14 12:39:37 -07:00
Andy Gocke 88202acd40
Update with expression in records-wip 2020-04-10 12:34:23 -07:00
Fred Silberberg 52624f54c0
Update function pointers proposal for binary operators. (#3348)
* Update function pointers proposal for binary operators.

* Update wording per feedback.
2020-04-09 14:33:18 -07:00
Andy Gocke 7f0c8e4eac
Keep parameterless record struct constructors 2020-04-07 17:29:48 -07:00
Andy Gocke 9143a30162
Update records-wip.md 2020-04-06 16:57:07 -07:00
Andy Gocke 1cca522b9b
Update records-wip.md 2020-04-06 16:56:29 -07:00
AlekseyTs 75ddc88a40
Limit top-level statements to a single compilation unit within a program (#3292)
Reflect LDM decision made on 2020-03-09 to limit top-level statements to a single compilation unit within a program.
2020-03-25 16:28:26 -07:00
Neal Gafter 64da1dcf00
target-typed new: reflect LDM decisions 2020-03-25 (#3311) 2020-03-25 15:40:49 -07:00
Andy Gocke 23172a7c6d
Add 'with' expression to the spec (#3282) 2020-03-25 15:36:47 -07:00
Neal Gafter 74c38d2950
Clean up the specification portion of target-typed new (#3310) 2020-03-25 10:06:34 -07:00
Julien Couvreur 7ea0b8e328
Update target-typed-new.md 2020-03-25 07:13:54 -07:00
Julien Couvreur 1f45494dec
Throw new() is allowed 2020-03-25 07:11:57 -07:00
Julien Couvreur 40bf00abdf
Update target-typed-new.md 2020-03-24 08:48:10 -07:00
Petr Kulikov cf22e016c7
Ranges proposal: fix typos (#2836) 2020-03-23 08:42:41 -07:00
Neal Gafter 3fa28e4b54
Update shadowing-in-nested-functions.md 2020-03-19 17:39:49 -07:00
Fred Silberberg 45a1455732
Only allow static methods for applicable members (#3281)
* Only allow static methods for applicable members

This fixes a very similar problem to https://github.com/dotnet/csharplang/issues/3277, where this code is unable to be resolved:
```cs
interface I1{}
interface I2{}

public unsafe class C : I1, I2 {
    void M(I1 i) {}
    static void M(I2 i) {}
    public void M1() {
        delegate*<C, void> a = M; // Ambiguous because both M's are applicable
    }
}
```
With this change, the instance method M is not applicable, so there is no ambiguity.
2020-03-19 12:56:34 -07:00
Julien Couvreur a6c38525c2
Update target-typed-new.md (#1989) 2020-03-19 11:44:21 -07:00
Rikki Gibson 51e8d545c7
Add draft spec for local function attributes (#3198) 2020-03-17 13:58:50 -07:00