Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 01:12
    dotnet-issue-labeler[bot] labeled #57346
  • 01:12
    jmarolf opened #57346
  • 00:16
    AlekseyTs review_requested #57345
  • 00:16
    AlekseyTs review_requested #57345
  • 00:16
    AlekseyTs review_requested #57345
  • 00:16
    AlekseyTs labeled #57345
  • 00:16
    AlekseyTs opened #57345
  • Oct 23 22:57
    RikkiGibson commented #57343
  • Oct 23 22:45
    jcouv synchronize #57318
  • Oct 23 21:38
    jcouv synchronize #57318
  • Oct 23 19:45
    msftbot[bot] milestoned #57332
  • Oct 23 19:45

    RikkiGibson on main-vs-deps

    Add ServiceHub core host integr… Implement 'Enable nullable refe… Support file headers wrapped in… and 22 more (compare)

  • Oct 23 19:45
    RikkiGibson closed #57332
  • Oct 23 19:45
    RikkiGibson auto_merge_disabled #57332
  • Oct 23 19:30
    jcouv synchronize #57318
  • Oct 23 19:13
    jcouv synchronize #57318
  • Oct 23 19:08
    jcouv edited #57318
  • Oct 23 18:53
    KevRitchie commented #50259
  • Oct 23 18:17
    dotnet-issue-labeler[bot] labeled #57344
  • Oct 23 18:17
    dotnet-issue-labeler[bot] labeled #57344
Leandro T. C. Melo
@ltcmelo
and their "coverage" is pretty much driven by the diversity of code we've encountered in the field (at this point, we've accumulated a number of POCs and customers)
e.g., you won't see proper handling of co/contravariance in generics, as we don't bump into them with frequency
and, I only have so much time and need to prioritize :-)
Bernd Baumanns
@bernd5
thanks for sharing
Bernd Baumanns
@bernd5
I tried once to write a linq-rewriter, too.
I tried your code - and it fails at the same point
Bernd Baumanns
@bernd5
the problem is the shadowing of thing
it would be great if that would work, too.
BTW.: this is the most complex linq query I have ever seen...
Bernd Baumanns
@bernd5
If you translate it you get: System.ArgumentException: "An item with the same key has already been added. Key: ____TRANSPARENT2"
Bernd Baumanns
@bernd5
I took the wrong sample
but both fail
arturohernandez10
@arturohernandez10
@ltcmelo Awesome!!!
still, feel free to create an GH issue if you'd like
thanks @arturohernandez10
Atul Sharma
@atksharma_twitter
Folks - For some reason , After updating to the latest version of roslyn dependencies, the documents are not loading inside the solution after opening the workspace .. Any body else facing this issue ?

Folks - For some reason , After updating to the latest version of roslyn dependencies, the documents are not loading inside the solution after opening the workspace .. Any body else facing this issue ?

These are the version of nugets we are currently using - -Microsoft.Build.Locator 1.4.1
Microsoft.CodeAnalysis.Analyzers 3.3.2
Microsoft.CodeAnalysis.CSharp 3.11.0
Microsoft.CodeAnalysis.CSharp.Workspaces 3.11.0
Microsoft.CodeAnalysis.Workspaces.MSBuild 3.11.0

Hugh Gleaves
@Korporal
VS has always been limited when it comes to being able to rename namespaces, I wonder if VS 2022 will offer improvements in this area...
2 replies
CyrusNajmabadi
@CyrusNajmabadi
can you give an example of what you mean?
Hugh Gleaves
@Korporal
Yes, if I have a new project and I just dream up a temp name like 'HolidayAPI' intending to refine that later, well later, I'd like to open one of the source files and click the namespace name "HolidayAPI" and rename it to say "Nep.Scheduling" but it never lets you, it hates you trying to introduce new periods into the name.
1 reply
I'm sure there are reasons but I wonder if there's scope for revisiting this.
CyrusNajmabadi
@CyrusNajmabadi
you can definitely file suggestion on this.
Hugh Gleaves
@Korporal
alright, I'll do that later, thanks Cyrus.
timiil
@timiil
hi,hi , i am trying do a task:
walk through a Lambda, get all MemberAccessSyntax
ExpressionSyntax es = SyntaxFactory.ParseExpression(expr); //expr is a string
any simple way to walkthough the 'es' that get all MemberAccessExpressionSyntax inside it ? we know that the a great deal of kind XXXXSyntax inside the tree...
Martin Vseticka
@MartyIX

Guys, I'm working on an analyzer which bans some APIs. So it basically goes through syntaxTree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>() and checks INamespaceSymbol namespaceSymbol = semanticModel.GetSymbolInfo(node).Symbol?.ContainingNamespace;.

The function that does this is public IEnumerable<(IdentifierNameSyntax, INamespaceSymbol )> FindForbiddenIdentifiers(SemanticModel semanticModel). My implementation of the method does "yield return (node, @namespace);" so that FindForbiddenIdentifiers returns as soon as possible and a diagnostic can be reported to a Visual Studio user. My colleague would prefer FindForbiddenIdentifiers to return a list (as it is computed faster 240ms as opposed to 300ms with yield return- the intervals are taken from unit tests). Is there some recommendation what is better? I would expect that yield return should be used by default as I understand I don't really need an allocation for the returning list but still my implementation is "slower" in total.

Joe4evr
@Joe4evr

@MartyIX first consider: use of yield return will create a compiler-generated state machine, and you'll allocate that at runtime

the difference likely comes from the fact that the List can utilize a struct enumerator and all the items in the list are pre-computed, as opposed to yield return which lazily evaluates the next item in the sequence for every MoveNext

Martin Vseticka
@MartyIX
@Joe4evr Good point. So what is the preferred solution? Or what solution would you pick? (As a rule of thumb rather than "depends on the situation")
12 replies
Bernd Baumanns
@bernd5
If I query the IOperation of an FunctionPointer-InvocationExpressionSyntax, is it intended that I get a "NoneOperation"?
something like: functionPtrVariable(someArg1, someArg2)
I would expect an IInvocationOperation
Jesper Hansen
@jespersh
Hi, I'm having some success with Source Generators and I'm wondering where I can find the generated source in the Solution Explorer? I've been able to F12 to some source, but not all source has a call (signalr hub)
Oh, there in the Dependencies->Analysers->Project-with-source-generator. I swear it wasn't there a moment ago :)
Martin Vseticka
@MartyIX

Hi, I wonder, is it better to have as a rule of thumb:

#1 Dictionary<Key1, Dictionary<Key, Value>>

or

#2 Dictionary <string, Value> where key is string myKey = $"{enumValue1}-{enumValue2}"

?

First variant requires typically more code, the second is typically more comfortable to work with. That's one view. However, I wonder if I keep allocating myKeys again and again or if some string interning is helping me here...?

CyrusNajmabadi
@CyrusNajmabadi
You will keep allocating keys.
2 replies
Alternative 3:
Dictionary<(string key1, string key2), Value>
43 replies
Martin Vseticka
@MartyIX
Thanks!
Hugh Gleaves
@Korporal
I have a solution that contains two projects, a library targeting netstandard 2.0 and a console app targeting .Net 5 that exercises the library.
The library when used from within the console app, generates source code, small files that contain a single class definition.
The console app can include these generated class files and can build and execute the code.
Now I want to dynamically load and execute the generated source within the console app (rather than building the console app with the file included)
But I get compile errors:
(19,34): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Hugh Gleaves
@Korporal
I already add a bunch of references including C:\Program Files\dotnet\shared\Microsoft.NETCore.App\5.0.11\System.Private.CoreLib.dll and C:\Program Files\dotnet\shared\Microsoft.NETCore.App\5.0.11\netstandard.dll
Hugh Gleaves
@Korporal
ok its working