- 19 2月, 2020 1 次提交
-
-
由 Tomáš Matoušek 提交于
* Clean up string resources, use Arcade resx generator * CodeLens resources * Use NET20 instead of NETFX20
-
- 23 1月, 2020 1 次提交
-
-
由 Jonathon Marolf 提交于
-
- 04 1月, 2020 1 次提交
-
-
由 Tomáš Matoušek 提交于
-
- 18 12月, 2019 1 次提交
-
-
由 Julien Couvreur 提交于
* Refactor tuple implementation * Tweaks * Address PR feedback * Pass tuple data in constructors * Address more feedback * Tweak comparison * Restore constructWithTypeParameters flag to avoid overflow * Assert that tuple parameter matches TupleUnderlyingType somewhat * Rename to TupleData. Address some IDE feedback * Remaining TODO2's * Fix last IDE test! * Factor array comparison * Tweak WithTupleData and EqualsIgnoringTupleUnderlyingType * Expand a test * Remove duplicate line * Remove an EE test for badly formed ValueTuple type * PR feedback from Neal * Restore an IDE test without ValueTuple * Rename constants * Restore formatting
-
- 02 11月, 2019 1 次提交
-
-
由 AlekseyTs 提交于
This change also separates implementation of ISymbol interfaces from internal symbols in C# compiler.
-
- 30 10月, 2019 1 次提交
-
-
由 Dustin Coleman 提交于
-
- 08 10月, 2019 1 次提交
-
-
由 Neal Gafter 提交于
Fixes #24737
-
- 05 10月, 2019 1 次提交
-
-
由 Andy Gocke 提交于
When we added support for tracking static fields as part of nullable analysis, we used -1 for their containing slot. Negative numbers are not meant to be used as actual slots and flowed through the flow analysis code, they are only used as sentinels from slot-returning methods to indicate that the variable in question is not tracked. The appropriate root slot for a static variable is the same as the root slot for a top-level tracked variable (like a local), which is 0. Fixes #38725
-
- 03 10月, 2019 1 次提交
-
-
由 Dustin Coleman 提交于
-
- 25 9月, 2019 1 次提交
-
-
由 Ivan Basov 提交于
-
- 21 9月, 2019 1 次提交
-
-
由 Jared Parsons 提交于
-
- 20 9月, 2019 2 次提交
-
-
由 Dustin Coleman 提交于
-
由 Andy Gocke 提交于
* Require /unsafe flag for SkipLocalsInitAttribute * Use Unsafe
-
- 17 9月, 2019 1 次提交
-
-
由 Dustin Coleman 提交于
-
- 06 9月, 2019 1 次提交
-
-
由 Jason Malinowski 提交于
Some violations were us approximating theories, so this just converts to using theories.
-
- 25 8月, 2019 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 12 8月, 2019 1 次提交
-
-
由 Jared Parsons 提交于
Including more projects that have a dependency on ilasm.
-
- 10 8月, 2019 1 次提交
-
-
由 Jared Parsons 提交于
-
- 02 8月, 2019 1 次提交
-
-
由 Tomáš Matoušek 提交于
* EE: Do not trim comments from expression preceding a quote
-
- 13 7月, 2019 1 次提交
-
-
由 Tomáš Matoušek 提交于
* Top-level types enumeration refactoring * Simplify DefinitionMap * Include namespaces in synthesized definition map * Add SynthesizedNamespaceSymbol * Embedded Attributes * Test synthesized attributes * Clean up EnC tests * Clean up symbol matcher tests * Ref readonly return type, in parameter symbol matching tests * Enable using ref readonly returns, in parameters, ref structs during debugging * More tests * ReadOnly struct members * Fix langauge version mismatch * Merge fix ups * Feedback, skip tests
-
- 29 6月, 2019 1 次提交
-
-
由 Ivan Basov 提交于
-
- 27 6月, 2019 1 次提交
-
-
由 Ivan Basov 提交于
-
- 15 6月, 2019 1 次提交
-
-
由 Charles Stoner 提交于
-
- 11 5月, 2019 1 次提交
-
-
由 Ivan Basov 提交于
-
- 02 5月, 2019 1 次提交
-
-
由 Tomáš Matoušek 提交于
* Remove RoslynProjectType * Remove ToolsVersion, namespace from Project tags * Remove updating of MSBuildAllProjects * Update BuildBoss * Delete DeployTooolsetCompiler
-
- 16 4月, 2019 1 次提交
-
-
由 Antony Male 提交于
This changes the order of evaluation for string concatenation to follow the C# specification. Previously, when the compiler lowered a string concatenation containing any objects which were not strings (or implicitly convertible to strings), it would generate a call to an appropriate overload of `string.Concat` taking `objects`. This meant that all expressions being concatenated were evaluated, then `string.Concat` called, which called `.ToString()` on all of them. E.g. "x" + y + z got compiled to : string.Concat("x", y, z) Here, `y` and `z` are evaluated to `object` (boxing them if necessary), and then they have `.ToString()` called on them by `string.Concat`. This is technically against the C# specification, which defines string concatenation as a sequence of left-associative calls to one of: string operator +(string x, string y); string operator +(string x, object y); string operator +(object x, string y); So the above expression should conceptually be compiled to: op_Addition(op_Addition("x", y), z) That is, `y` is evaluated to `object` and concatenated with `"x"` before `z` is evaluated to `object`. The decision was made to change this behaviour in #522. This change brings a very important advantage: we can now fully evaluate `y` to a string before we evaluate `z`, which means we're allowed to compile the above to: string.Concat("x", y.ToString(), z.ToString()) This means that: - We don't box `y` and `z` if they're value types - We don't call `ToString()` on `"x"` (which is harmless but pointless) This commit implements this change. Calls are no longer emitted to overloads of `string.Concat` which take `object` - instead, all parameters are evaluated to a string, and then an appropriate overload of `string.Concat` which takes `strings` is called. Care is taken to deal with different types of expressions in different ways: - Strings or types which are implicitly convertible to string never have .ToString called on them - Reference types (and unconstrained generics) have ?.ToString() called on them - A copy is made of non-readonly non-constant value types (and unconstrained generics), before.ToString() is called on the copy. This is to preserve the previous behaviour where value types were boxed, and so any side-effects of ToString() weren't reflected in the original. - A copy isn't made of readonly value types, as we know that ToString() can't have side-effects. We emit `call` to special struct types, as we know these have their own ToString implementation which won't be removed. For other value types, we emit a constrained virtual call. This follows the precedent set in For unary concatenation (e.g. `thing + ""`) we now emit `thing?.ToString() ?? ""` instead of `string.Concat(thing) ?? ""`. This does increase the size of generated code. My impression is that the unit tests which were affected by this changed increased in size by about 10%. This is somewhat offset by the fact that we can now call string.Concat(string, string, string, string) instead of string.Concat(object[]) (since there is no overload of string.Concat which takes 4 objects), which reduces the size of some methods significantly. Fixes #522
-
- 13 3月, 2019 1 次提交
-
-
由 Neal Gafter 提交于
e.g. `ReturnType`, `ElementType`, etc.
-
- 09 3月, 2019 1 次提交
-
-
由 Neal Gafter 提交于
-
- 01 3月, 2019 1 次提交
-
-
由 Andy Gocke 提交于
Reflects the changes described in https://github.com/dotnet/csharplang/pull/2214. Range now looks optimistically for some special members with optional parameters, but will fall back to the Range constructor if they aren't present. This change also removes all of the specialized codegen that was going on with arrays and strings in favor of expected helpers or real members.
-
- 16 2月, 2019 1 次提交
-
-
由 Andy Gocke 提交于
This change does two things: shrinks the required Index/Range APIs to a minimal set, and changes the new required API names to those decided in the latest CoreFX design review (CoreCLR change at https://github.com/dotnet/coreclr/pull/22331).
-
- 15 2月, 2019 1 次提交
-
-
由 Jason Malinowski 提交于
-
- 08 2月, 2019 1 次提交
-
-
由 Ivan Basov 提交于
Debugger EE 'Internal error' if DebuggerBrowsable when 'newslot' C# property overrides field (#26049)
-
- 30 1月, 2019 3 次提交
-
-
由 Jared Parsons 提交于
closes #30767
-
由 Jared Parsons 提交于
closes #30755
-
由 Jared Parsons 提交于
closes #30754
-
- 29 1月, 2019 5 次提交
-
-
由 Jared Parsons 提交于
-
由 Jared Parsons 提交于
closes #30034
-
由 Jared Parsons 提交于
closes #30033
-
由 Jared Parsons 提交于
closes #30031
-
由 Jared Parsons 提交于
They were previously on C# 7.0 due to our reliance on new types. That went away when we moved to the new pragma based design. closes #30030
-