Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not load System.Collections.Immutable #63780

Closed
SoftStoneDevelop opened this issue Sep 2, 2022 · 21 comments
Closed

Could not load System.Collections.Immutable #63780

SoftStoneDevelop opened this issue Sep 2, 2022 · 21 comments
Assignees
Milestone

Comments

@SoftStoneDevelop
Copy link

SoftStoneDevelop commented Sep 2, 2022

Version Used: Microsoft.CodeAnalysis.CSharp 4.3.0 for .NET 6

Steps to Reproduce:

  1. Get compilation var c = (CSharpCompilation)context.Compilation;
  2. Get globalnamespace and cast him as INamespaceOrTypeSymbol
    var n = (INamespaceOrTypeSymbol)c.Assembly.GlobalNamespace;
  3. Get members var members = n.GetMembers();

Expected Behavior:
No error.

Actual Behavior:
Failed to generate source.

error

The error appeared only in version 4.3.0. Connecting nuget System.Collections.Immutable directly does not help.
If you comment out this line, then there will be no error:

//var members = n.GetMembers();

Example code for reproduce error
Generator code:

using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;

namespace SourceGenerator
{
    [Generator]
    public class HelloSourceGenerator : ISourceGenerator
    {
        public void Execute(GeneratorExecutionContext context)
        {
            // Find the main method
            var mainMethod = context.Compilation.GetEntryPoint(context.CancellationToken);

            var c = (CSharpCompilation)context.Compilation;
            var n = (INamespaceOrTypeSymbol)c.Assembly.GlobalNamespace;
            var members = n.GetMembers();

            // Build up the source code
            string source = $@"// <auto-generated/>
using System;

namespace {mainMethod.ContainingNamespace.ToDisplayString()}
{{
    public static partial class {mainMethod.ContainingType.Name}
    {{
        static partial void HelloFrom(string name) =>
            Console.WriteLine($""Generator says: Hi from '{{name}}'"");
    }}
}}
";
            var typeName = mainMethod.ContainingType.Name;

            // Add the source code to the compilation
            context.AddSource($"{typeName}.g.cs", source);
        }

        public void Initialize(GeneratorInitializationContext context)
        {
            // No initialization required for this one
        }
    }
}
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Compilers untriaged Issues and PRs which have not yet been triaged by a lead labels Sep 2, 2022
@SoftStoneDevelop
Copy link
Author

Or maybe this is not a bug and someone knows how to fix it?

@bdovaz
Copy link

bdovaz commented Sep 4, 2022

Same problem here! It started to happen when upgrading to 4.3.0

I can't compile on latest VS 2022 (17.3.3)

@StijnOostdam
Copy link

Same error here. I have upgraded to the latest .NET 6 version available, 6.0.400

@AndrzejKroczynski
Copy link

Same issue here - latest VS 2022 + .Net6

@mattleibow
Copy link
Member

I tried this with an internal build of VS using .NET 7 and building a net6.0 app. Same result.

Uploading Maui.Controls.Sample_Debug_AnyCPU_net6.0-android_Build_2022-09-06T12_29_29.4650495+02_00.zip…

@jaredpar
Copy link
Member

jaredpar commented Sep 7, 2022

@RikkiGibson can you take a look here. Suspect it's a case where the NuPkg is pushing a new version of S.C.I that doesn't match what we ship with our binaries.

@jaredpar jaredpar added Bug and removed untriaged Issues and PRs which have not yet been triaged by a lead labels Sep 7, 2022
@jaredpar jaredpar added this to the 17.4 milestone Sep 7, 2022
@RikkiGibson
Copy link
Contributor

RikkiGibson commented Sep 8, 2022

I see that in PR #63599 we updated the reference to System.Collections.Immutable to 6.0.0. But in the main branch it is still at 5.0.0, and last modified 3 months ago, which means the PR in 17.3 never flowed forward. Also, a package containing PR #63599 has not yet been inserted to VS, but it looks like the version on NuGet does include PR #63599.

When we load the analyzer in the VS 17.4 preview (and probably in VS 17.3 as well, but I haven't tested), the compiler ends up trying to load this version, which fails. TBH, I don't have a lot of insight into why this is happening except that our Resolve event is returning null via this code path.

cc @chsienki @JoeRobich @jaredpar in case you can provide any insight.

@RikkiGibson
Copy link
Contributor

RikkiGibson commented Sep 8, 2022

For now we think the workaround for users who want to adopt APIs added in 4.3 is to reference version 4.3.0-3.final, which was released to match 17.3 preview 3. Apologies for the inconvenience.

@Eli-Black-Work
Copy link

Hi @jaredpar 🙂

I know this isn't your department, but I figured it might be worth asking:

I reported this same bug three months ago: https://developercommunity.visualstudio.com/t/MetadataCommandExtractMetadata-Could/10077182 . Do you have any insight on what happened to that bug? Was it ever reported to the Roslyn team?

Thanks, and sorry for the distraction 🙂

@jaredpar
Copy link
Member

@Bosch-Eli-Black

That is a different bug. Yes both bugs are issues building due to a bad version of System.Collections.Immutable but the circumstances are different:

  1. This bug: Our 4.3.0 NuPkg advertised a dependency on 6.0.0 while the compiler actually deployed 5.0.0. That means anaylzers / generators that compiled against 4.3.0 ended up with a SCI dependency of 6.0.0. When deployed only 5.0.0 would be there , the analyzer wouldn't load and it would result in a compilation error.
  2. The linked bug: This is the MSBuildSdkResolver failing because it can't SCI at 5.0.0. That is essentially failing very early in the MSBuild process, way before ti gets to compilation.

My suspicion would be that installation was corrupted in (2). But it's not my area so I'd defer to MSBuild team.

@kzu
Copy link
Contributor

kzu commented Sep 23, 2022

My workaround for now was to downgrade to:

    <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.2.0" Pack="false" />

Since I'm not using anything in 4.3 for my incremental generator, this works for now.

@Eli-Black-Work
Copy link

Ah, thanks, @jaredpar! Sorry for the confusion 🙂

@knoxi
Copy link

knoxi commented Sep 29, 2022

There is a new release of VS 2022, V17.3.5, it solved the issue for me.

@UnleashMayhem
Copy link

I still have the same issue, on JetBrains Rider 2022.2.3

@Nirmal4G
Copy link

Nirmal4G commented Oct 4, 2022

You can now use the released version 4.3.1 for both compilers and libraries. This has been released to NuGet.

@angularsen
Copy link

angularsen commented Oct 6, 2022

I'm having similar trouble with all 4.x versions.

Repro on master branch:
https://github.com/angularsen/roslyn-analyzers/

Rider 2022.2.3
VS2022 17.3.4
dotnet SDK 6.0.401

Microsoft.CodeAnalysis.Analyzers: 3.3.3
Microsoft.CodeAnalysis.CSharp.Workspaces: below versions

Repro

  • Change Microsoft.CodeAnalysis.CSharp.Workspaces version in AssignAll project.
  • Clean/build Samples.ConsoleNet6.
dotnet clean Samples.ConsoleNet6/; dotnet build Samples.ConsoleNet6/

Microsoft.CodeAnalysis.CSharp.Workspaces versions

This was tested with nuget reference to AssignAll.
I seem to get slightly different behavior with project reference to AssignAll, where 4.1.0 does work as normal.

3.11.0 and below:

  • dotnet build: Diagnostics listed.
  • ✅ Rider + VS msbuild: Diagnostics listed and code fix tooltip shown.
  • ✅ Rider + SDK msbuild: Diagnostics listed and code fix tooltip shown.
  • ✅ VS2022: Diagnostics listed and code fix tooltip shown.

4.1.0, 4.2.0:

  • dotnet build: Diagnostics listed.
  • ⚠️ Rider + SDK msbuild: Diagnostics listed in Build tab, but no code fix tooltip.
  • ⚠️ Rider + VS msbuild: Diagnostics listed in Build tab, but no code fix tooltip.
  • ✅ VS2022: Diagnostics listed and code fix tooltip shown.

Note: After switching to project reference, 4.1.0 does work with both msbuild versions. 4.2.0 still does not work.

4.3.0, 4.3.1:

  • dotnet build: Diagnostics listed.
  • ⚠️ Rider + SDK msbuild: Diagnostics listed, but no code fix tooltip.
  • ❌ Rider + VS msbuild: No diagnostics. CS8032 on 'System.Collections.Immutable, Version=6.0.0.0`
  • ❌ VS2022: No diagnostics. CS8032 on 'System.Collections.Immutable, Version=6.0.0.0`

4.4.0-2.final:
Not sure how to make this compile, it says it references a newer compiler than my current that is 4.3.3.

The dotnet SDK 6.0.401 is able to list the diagnostics correctly for all versions, but Rider and VS fail slightly differently each.

Why Rider is only able to list diagnostics, but not show tooltips for 4.x versions is odd and may be a separate bug on their end.

Seems relevant:
https://youtrack.jetbrains.com/issue/RIDER-81137/CodeFixProviders-dont-work

References

CS8032 An instance of analyzer AssignAll.AssignAllAnalyzer cannot be created from C:\Users\andre\.nuget\packages\assignall\1.20.10-beta\analyzers\dotnet\cs\AssignAll.dll : 
Could not load file or assembly 'System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

@jaredpar
Copy link
Member

jaredpar commented Oct 7, 2022

Closing as this is resolved with NuPkg 4.3.1 and VS 17.3.5

@jaredpar jaredpar closed this as completed Oct 7, 2022
@tomrus88
Copy link

tomrus88 commented Oct 9, 2022

Still have this issue in VS 17.4.0 Preview 2.1, so not fixed all... Why close when its not fixed?

@craigktreasure
Copy link

We've begun to hit this as well in our build agent as of .NET SDK 6.0.402. I can't reproduce locally. Possibly because I've got an updated version of VS 2022 (17.3.6). The build agent is currently on VS 17.3.2.

@BertanAygun
Copy link
Contributor

BertanAygun commented Oct 14, 2022

We started to hit this issue as well. The compiler toolset for 4.4.0-2.final (or earlier) ships with 5.0.0 of the assembly in "....nuget\packages\microsoft.net.compilers.toolset\4.4.0-2.final\tasks\net472\System.Collections.Immutable.dll, however Microsoft.CodeAnalysis.Common nuget package dependencies state "System.Collections.Immutable >= 5.0.0" nuget version.

Our generator recently started relying on a package that depends on System.Collections.Immutable >=6.0.0 which is causing conflicts because at runtime 6.0.0 is actually not available. Packaging 6.0.0 with our source generator doesn't work either since Roslyn APIs do return Immutable types causing type mismatches.

@jaredpar
Copy link
Member

"....nuget\packages\microsoft.net.compilers.toolset\4.4.0-2.final\tasks\net472\System.Collections.Immutable.dll, however Microsoft.CodeAnalysis.Common nuget package dependencies state "System.Collections.Immutable >= 5.0.0" nuget versio

This package is not supported as a long term build tool. From the README on the NuPkg

This package is primarily intended as a method for rapidly shipping hotfixes to customers. Using it as a long term solution for providing newer compilers on older MSBuild installations is explicitly not supported. That can and will break on a regular basis.

The official toolset with 17.3.5 is patched for this problem.

GrahamTheCoder added a commit to icsharpcode/CodeConverter that referenced this issue Dec 18, 2022
Note: Needed to upgrade >3.11 to avoid dotnet/msbuild#7873
Needed to downgrade < 4.3 to avoid dotnet/roslyn#63780
GrahamTheCoder added a commit to icsharpcode/CodeConverter that referenced this issue Dec 19, 2022
Needed codeanalysis >3.11 to avoid dotnet/msbuild#7873
Needed codeanalysis< 4.3 to avoid dotnet/roslyn#63780

There may have been other workarounds
GrahamTheCoder added a commit to icsharpcode/CodeConverter that referenced this issue Dec 19, 2022
Needed codeanalysis >3.11 to avoid dotnet/msbuild#7873
Needed codeanalysis< 4.3 to avoid dotnet/roslyn#63780
GrahamTheCoder added a commit to icsharpcode/CodeConverter that referenced this issue Dec 19, 2022
Needed codeanalysis >3.11 to avoid dotnet/msbuild#7873
Needed codeanalysis< 4.3 to avoid dotnet/roslyn#63780
GrahamTheCoder added a commit to icsharpcode/CodeConverter that referenced this issue Dec 19, 2022
Needed codeanalysis >3.11 to avoid dotnet/msbuild#7873
Needed codeanalysis< 4.3 to avoid dotnet/roslyn#63780
GrahamTheCoder added a commit to icsharpcode/CodeConverter that referenced this issue Dec 19, 2022
Needed codeanalysis >3.11 to avoid dotnet/msbuild#7873
Needed codeanalysis< 4.3 to avoid dotnet/roslyn#63780
BrianFreemanAtlanta added a commit to BrianFreemanAtlanta/CodeConverter that referenced this issue Feb 28, 2024
* 9.0.3

* Do not run default code from UI against real converter to save on execution costs

* Apply timeout to simplification

* 9.0.4

* Bump node-forge from 0.10.0 to 1.3.1 in /Web/ClientApp

Bumps [node-forge](https://github.com/digitalbazaar/forge) from 0.10.0 to 1.3.1.
- [Release notes](https://github.com/digitalbazaar/forge/releases)
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](digitalbazaar/forge@0.10.0...v1.3.1)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump json-schema from 0.3.0 to 0.4.0 in /Web/ClientApp

Bumps [json-schema](https://github.com/kriszyp/json-schema) from 0.3.0 to 0.4.0.
- [Release notes](https://github.com/kriszyp/json-schema/releases)
- [Commits](kriszyp/json-schema@v0.3.0...v0.4.0)

---
updated-dependencies:
- dependency-name: json-schema
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

* VB -> CS: Continue the correct of several continuable nested blocks - fixes icsharpcode#946

* Dedupe multiple exit/continue variables

* VB -> CS: Declare inline variable when referencing anonymously in VB - fixes icsharpcode#949

* At least avoid NRE in icsharpcode#948

Doesn't actually fix orderby and select of group though

* Update vb2cs_bug_report.md

* Update cs2vb_bug_report.md

* Update bug_report.md

* Bump loader-utils from 1.4.0 to 1.4.1 in /Web/ClientApp

Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.1/CHANGELOG.md)
- [Commits](webpack/loader-utils@v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump minimatch and recursive-readdir in /Web/ClientApp

Bumps [minimatch](https://github.com/isaacs/minimatch) and [recursive-readdir](https://github.com/jergason/recursive-readdir). These dependencies needed to be updated together.

Updates `minimatch` from 3.0.4 to 3.1.2
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Commits](isaacs/minimatch@v3.0.4...v3.1.2)

Updates `recursive-readdir` from 2.2.2 to 2.2.3
- [Release notes](https://github.com/jergason/recursive-readdir/releases)
- [Changelog](https://github.com/jergason/recursive-readdir/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jergason/recursive-readdir/commits/v2.2.3)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
- dependency-name: recursive-readdir
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.3 to 4.8.5 in /CommandLine/CodeConv

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.3 to 4.8.5.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient in /CommandLine/CodeConv.NetFramework

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.1 to 4.8.5.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.2 to 4.8.5 in /Func

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.2 to 4.8.5.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.1 to 4.8.5 in /Vsix

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.1 to 4.8.5.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.1 to 4.8.5 in /Web

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.1 to 4.8.5.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump loader-utils from 1.4.1 to 1.4.2 in /Web/ClientApp

Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](webpack/loader-utils@v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update README.md

* Remove global json and see what happens

* Temporarily disable these tests until they work with dot net 7

* Wait for build to finish!

* Update README.md

* Change build order in advance of using this in tests

* Don't use InitializeComponent in temp file

* Ignore temp files with InitializeComponent

* Splits static and instance handlers and include property ones icsharpcode#967

* Recommend VS2022

We'll likely need to drop VS2019 support to dodge the bugs caused by various combinations of the libraries

* Update README.md

* Try running exe

* nuget update all

* Use IsKind as required in later versions of codeanalysis

* Satisfy new API requirements

* Downgrade to 4.2.0 to avoid bugs in 4.3 and 4.4

Note: Needed to upgrade >3.11 to avoid dotnet/msbuild#7873
Needed to downgrade < 4.3 to avoid dotnet/roslyn#63780

* Revert attempt to run command line, even though it'd likely now work

* Update expectations (sane indentation) for what the new library does

* Ditch global.json again

* Try to pick a consistent set of dependencies based on the codeanalysis 4.2.0

* Ensure full error details appear in exception (not just log)

* Record version used

* Output version when available

* Block versions before 17.2 which will fail to load after this PR

* 9.1.0

* Undo VS2019 incompatible changes

* Update non-user-facing nuget packages

* Manually install System.Memory to get assembly version 4.1.2 and workaround dotnet/msbuild#7873

* Update CHANGELOG.md

* Update README.md

* Multiline strings correctly followed by a newline - fixes icsharpcode#970

* 9.1.1 (9.1.0 was never released)

* Update CHANGELOG.md

* Update README.md

* Remove converter error from icsharpcode#965 (still creates compile error) - closes icsharpcode#965

* Add test for icsharpcode#975 - closes icsharpcode#975

* Add to changelog

* Err on the side of caution for array types - fixes icsharpcode#962

* Remove todo that appears to be done

* Bump json5 from 1.0.1 to 1.0.2 in /Web/ClientApp

Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](json5/json5@v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Handle the case when the event container doesn't exist - relates to icsharpcode#977 icsharpcode#979

* Revert unintended change

* 9.1.2

* Sketch of solution for icsharpcode#982

* Add tests to refine details

* Rearrange methods

&& and || are special for not being applicable to nullable objects hence their special handling to get the value

* More tests

* Changelog

* Replace newline with specified character - fixes icsharpcode#973

* Fix test case compilation error - fixes icsharpcode#985

* Test tweaks

* 9.1.3

* Remove crash preventer which ironically now causes crashes - fixes icsharpcode#986

* Convert more targets matching common pattern

Existing MultiFileSolutionAndProjectTests cover this, the regex is generalised to work for other things like UWP projects
icsharpcode#988

* Add ToString when concatenating a string and an object - fixes icsharpcode#974

* Fixup other tests to use ToString

* Denied

CSC : error CS1617: Invalid option '11.0' for /langversion. Use '/langversion:?' to list supported values. [D:\a\CodeConverter\CodeConverter\CodeConverter\CodeConverter.csproj]

Build FAILED.

CSC : error CS1617: Invalid option '11.0' for /langversion. Use '/langversion:?' to list supported values. [D:\a\CodeConverter\CodeConverter\CodeConverter\CodeConverter.csproj]
    0 Warning(s)
    1 Error(s)

* Enable arm64 vsix

* Bump webpack from 5.65.0 to 5.76.1 in /Web/ClientApp

Bumps [webpack](https://github.com/webpack/webpack) from 5.65.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.65.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* 9.2.0 - first arm64 compatible

* CType(Nothing, Date?) now converts to default(DateTime?) - fixes icsharpcode#994

* Conditional indexer now converted - fixes icsharpcode#993

* 9.2.1

* Fix issue icsharpcode#998

* Fix issue icsharpcode#1000

* Update CHANGELOG.md

* Fix issue icsharpcode#1003

* Update CHANGELOG.md

* Replace self too

* Set some fallback logic for picking name

* Allow object initializer to be self referential - fixes icsharpcode#1002

* Use different example

* Show where the comments end up

* Make progress each recursion - fixes icsharpcode#1007

* 9.2.2

* Pass through statements

* Move try/catch logic all to the same spot - and reuse method body visitor

* Generate a horrible do loop with a switch statement for handlers

TODO:
* Deal with non-returning code paths
* Ensure loops within the method can still break/continue as expected

* Handle one very specific case

* Handle nulls and remove comment from old plan

* Separate method

* Neaten up when there's no fall through

* Add to changelog

* Implement icsharpcode#1008 - could be spruced up with eg code samples, currently only taken the Description -> respective PackageReadme.md

* Update actions versions

* Specifically use 1.0.6 action that is using node 16

* If written or inherited, a property is generated which will do the hookup upon assignment

* Push event assignment to end of constructor - fixes icsharpcode#967

* Passing test - closes icsharpcode#991

* Changelog and test tweak

* Prevent source mapping for field initializers hoisted to constructor - fixes icsharpcode#1017

* Refine IsDefinitelyStatic

* Somewhat ugly mechanism for detecting when within an expression tree

* When converting "Is" and "IsNot" within an expression tree, use "==" - fixes icsharpcode#1015

* Mark WhereClauseSyntax as always boolean in CSharp - fixes icsharpcode#894

* Worked around "CONVERSION ERROR: usingKeyword" bug caused by VS 17.7.0 preview 2 - fixes icsharpcode#1019

Note the added test hasn't been seen to fail since updating the nuget package to the preview caused another issue I'll look into

* Don't use patterns when name is reusable - relates to icsharpcode#1011

* Try to precisely cover each case that requires a single execution

* Latest langversion

* Make it possible to track whether in query

* Don't bother trying to deal with nullables within expressions - closes icsharpcode#1011

* Changelog

* Update characterization

* Dodge null

* 9.2.3

* Bump tough-cookie from 4.0.0 to 4.1.3 in /Web/ClientApp

Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.0.0 to 4.1.3.
- [Release notes](https://github.com/salesforce/tough-cookie/releases)
- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)
- [Commits](salesforce/tough-cookie@v4.0.0...v4.1.3)

---
updated-dependencies:
- dependency-name: tough-cookie
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Add Linq.Expressions reference to defaults

* Restore original state rather than forcing false

* Pay attention to lambda expressions - fixes icsharpcode#930

Inspired by https://github.com/JosefPihrt/Roslynator/blob/7ba2f29f5090aa13f4dd6b7936af55180b678333/src/CSharp/CSharp/Extensions/SyntaxExtensions.cs#L3114

* Don't do VB comparison within expressions - fixes icsharpcode#316

* Maintain expression type in variable declaration

* Changelog

* Update README.md

* Omit ByVal as recommended by IDE0081 - fixes icsharpcode#1024

* Bump word-wrap from 1.2.3 to 1.2.4 in /Web/ClientApp

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* add test for a non-VB-Chr Method

* Fix VB.Chr method recognition

* remove trailing NewLine in SpecialConversionTests.cs

* remove EOL

* remove EOL

* really fix the EOL at EOF this time I hope

* Basic implementation with current library version - fixes 1032

* Use verbatim literals rather than manually escape

* Refine logic for using verbatim strings

* Update CHANGELOG.md

* tests: add tests for clashing renamer and enum types

* fix: clashing renamer for enums

* chore: update changelog

* refactor: use INamedTypeSymbol

* tests: regenerate results

* Bump @babel/traverse from 7.16.7 to 7.23.2 in /Web/ClientApp

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.16.7 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* BinaryConditional's first expression isn't always boolean - fixes icsharpcode#1038

* Walk existing structure bottom up to avoid stack overflow - fixes icsharpcode#1033

Only worth doing this since it's a really easy way to cause an error that's been seen by multiple real users. Not planning to protect against every possible version of this, since that would add a lot of complexity for a tiny reward

* Bump axios from 0.27.2 to 1.6.0 in /Web/ClientApp

Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.6.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v0.27.2...v1.6.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Mention Versions

* This couldn't be resolved when running latest version of VS... don't know why

* Try to create this as a net standard project since msbuild is complaining about net 48 stuff

* Recharacterize in this form

* add a workaround

It's only required until dotnet/roslyn#71115 is fixed.

(cherry picked from commit b0a64e6)

* And the sln files

* Exit Property now returns value assigned to return variable - fixes icsharpcode#1051

* Remove square brackets when escaping labels and identifiers - fixes icsharpcode#1043, fixes icsharpcode#1044

* Add example

* Split test class in two

* It's a csharp compile error to use optional parameters before ref parameters - fixes icsharpcode#1057

* `Nothing` is the default, don't bother specifying since we can't get it right for structs - fixes icsharpcode#1056

* Avoid stack overflow in stack overflow prevention code - fixes icsharpcode#1047

* Reformat

* Apply to additional declarations - fixes icsharpcode#1053

Note: Also removed other changelog item which was broken and fixed within this release

* 9.2.4

* Remove missed issue

* Use a wrapper that calls escape identifier

* Overescape identifiers - fixes # 1043

Don't worry about exactly which context, just escape in any case

* This can obviously have dots in, so is a name, and it turns out we don't need to parse it

* Cast to dynamic when the accessed member can't be found but the surrounding object can - fixes icsharpcode#786

There's probably a more specific condition which should trigger this if we look in Roslyn code

* Conversion of parenthesized ref arguments no longer assigns back - fixes icsharpcode#1046

* Add Func + Web startup option

* Update to dot net 8 and react 18 render method

* Set the path in the url needed to debug locally

* Add new test and move existing tests together

The existing test may need an update to work for icsharpcode#749 and icsharpcode#1062

* Remove part of fix for icsharpcode#749 - fixes icsharpcode#1062

* Some more tests

* CHANGELOG

* Recharacterize

* Convert constant characters directly to constant strings

* Select case for a mixture of strings and characters converts correctly - fixes icsharpcode#1061

* Bump follow-redirects from 1.15.3 to 1.15.4 in /Web/ClientApp

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.5 to 4.8.6 in /Web

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.5 to 4.8.6.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient in /CommandLine/CodeConv.NetFramework

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.5 to 4.8.6.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.5 to 4.8.6 in /Func

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.5 to 4.8.6.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.5 to 4.8.6 in /Vsix

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.5 to 4.8.6.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump System.Data.SqlClient from 4.8.5 to 4.8.6 in /CommandLine/CodeConv

Bumps [System.Data.SqlClient](https://github.com/dotnet/corefx) from 4.8.5 to 4.8.6.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

---
updated-dependencies:
- dependency-name: System.Data.SqlClient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Only cast for boxing when it's not implicit - fixes icsharpcode#1071

But since this removes some casts, do still ensure that predefined cast expressions always cast since otherwise casting to T via object gets broken

* 9.2.5

* Set TFM to net6.0;net8.0 for "warning NETSDK1138: The target framework 'netcoreapp3.1' is out of support and will not receive security updates in the future."

* Upgrade Azure Function to .NET 8

* Update NuGet packages for Tests project (based on File/New xUnit project)

* Update CHANGELOG.md

* Test for case similar to icsharpcode#782

* Don't try to ref foreach, Me or Using identifiers - fixes icsharpcode#1052

* Catch when it's a different type or the method is missing due to version issues

* Cater net 45 and non-compiling solutions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: GrahamTheCoder <GrahamTheCoder@gmail.com>
Co-authored-by: Christoph Wille <christoph.wille@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: GrahamTheCoder <graham.helliwell@savanta.com>
Co-authored-by: Jeremy Philippe <jeremy.philippe@gmail.com>
Co-authored-by: Timur Kelman <tymur.gubayev@gmail.com>
Co-authored-by: Timur Kelman <Timur.Kelman@fecher.eu>
Co-authored-by: Dominik Baran <dominik.baran@gustline.com>
Co-authored-by: Dominik Baran <dominik.baran7@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests