Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 07:32
    cston synchronize #57295
  • 07:10
    CyrusNajmabadi commented #49954
  • 07:10
    cston synchronize #57295
  • 07:08
    abatishchev commented #49954
  • 07:05
    CyrusNajmabadi commented #49954
  • 07:05
    msftbot[bot] milestoned #58184
  • 07:04
    CyrusNajmabadi closed #58184
  • 07:04

    CyrusNajmabadi on main

    Add regex parser tests Merge pull request #58184 from … (compare)

  • 07:01
    kelicto closed #58155
  • 07:01
    kelicto commented #58155
  • 06:14
    davidwengier synchronize #58152
  • 06:06
    rui-ktei closed #58187
  • 06:06
    rui-ktei commented #58187
  • 05:43
    Youssef1313 synchronize #58154
  • 05:38
    DavidKarlas commented #58188
  • 05:36
    Youssef1313 synchronize #58173
  • 05:36
    Youssef1313 review_requested #58173
  • 05:36
    Youssef1313 review_requested #58173
  • 05:25
    Youssef1313 commented #58187
  • 05:23
    davidwengier closed #57996
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
I basically do dthis
                var colRefLocation = AppDomain.CurrentDomain.GetAssemblies().Single(a => a.GetName().Name == "System.Collections").Location;
                var stdRefLocation = AppDomain.CurrentDomain.GetAssemblies().Single(a => a.GetName().Name == "netstandard").Location;
                var sysrLocation = AppDomain.CurrentDomain.GetAssemblies().Single(a => a.GetName().Name == "System.Runtime").Location;
Antony Male
@canton7
@Korporal Using Roslyn, presumably? Look at https://github.com/jaredpar/basic-reference-assemblies for the correct set of reference assemblies for a given target
jamespgatt
@jamespgatt

Hi there, I have a solution that contains 3 projects:

  • a library (netstandard 2.0) that is using ISourceGenerator
  • a WebAPI project (net5.0) that has some controllers with actions
  • a Test (net5.0 with xunit) that has unit tests

Basically the flow I want to achieve is that the SourceGenerator class will analyse all action methods and generate a sample unit test [fact] for each action method.
However what I am realising is that SyntaxTrees only accesses one executing assembly at a time - i.e. if the source generator is being executed on the Test proj (even with WebAPI proj referenced), syntaxtrees for WebAPI are not accessible.

Is there a way around this?

CyrusNajmabadi
@CyrusNajmabadi
Nope
That's fundamental to analyzer and sg design.
They operate on one compilation at a time.
This models how compilation actually works. When you are compiling a project X, it's dependencies are passed to it as metadata references, not source code.
Yair Halberstadt
@YairHalberstadt
@jamespgatt you shouldn't need syntax trees for what you're doing - just MethodSymbols
jamespgatt
@jamespgatt
Thanks will check it out
suresh palepu
@satyasuresh:matrix.org
[m]

Hi All

I am trying to disable the "SA1101" stylecop warning in .net core

added below line the .ediitorconfig, but still showing the warining

Please help me on this

dotnet_diagnostic.SA1101.severity = none

a

Martin Vseticka
@MartyIX

Guys, I have NLog as dependency in my analyzer: https://github.com/dotnet/roslyn/discussions/56643#discussioncomment-1378880.

Now I wonder about this line <PackageReference Include="NLog" Version="4.7.5" PrivateAssets="all" GeneratePathProperty="true" /> in my analyzer project. Is it recommended to add PrivateAssets="all" or not? My fear is that NLog dependency ends up in CUSTOMER's project by transitivity rule. Is that reasonable fear or is it a nonsense?

Yair Halberstadt
@YairHalberstadt
Why don't you test. Setup a local folder as a nuget source, generate a nuget package and copy to that folder, reference the analayzer froma seperate project, and see what happens.
1 reply
Joe4evr
@Joe4evr
:arrow_up:
Yair Halberstadt
@YairHalberstadt
As an aside, I wish that roslyn passed in a logger to analyzers/source generators
Joe4evr
@Joe4evr
word
Antony Male
@canton7
There was a request for that
Martin Vseticka
@MartyIX
ok, so it seems to me that the reference is not propagated to the customer's project.
However, I have just found that other 3rd party dependencies leak into the customer's project thanks to my nuget packages :facepalm:
Benjamin
@benjamin-asdf
Hi, I'd like to get a recursive call graph of a method. Like all methods that it uses (down into other assemblies)
Elan Hasson
@elanhasson:matrix.org
[m]
Why are source generators only additive?
Joe4evr
@Joe4evr
because it's exponentially more complicated to spec order of execution when replacement is involved
Leandro T. C. Melo
@ltcmelo
hi...
I have an unexpected situation: an object propSym (of type IPropertySymbol) whose Name is null, ie, propSym.Name == null holds
I don't have any context about the source in question because this error is coming from a (customer) log
my understanding is that propSym.Name could return an empty string but not null
I'm wondering whether this could happen anyhow... does anyone have a hint?
Bernd Baumanns
@bernd5
hey
I'd like to analyze the dataflow of a ConstructorInitializerSyntax
Unfortenately it is not an expression nor a statement
it has the same characteristics as a statement - but it does not inherit from it (because it is only valid at a single position...)
For now I "solved" it by creating a dummy method with an ObjectCreationExpressionSyntax of the base / delegated constructor and analyzed that
the result is fine - but I need to map the new symbols back to the old ones
Could we allow AnalyzeDataFlow not only for statements and expression's but also for ConstructorInitializer expressions?
Bernd Baumanns
@bernd5
Or do you have another good idea?
Bernd Baumanns
@bernd5
@ltcmelo it could be an indexer
indexers do not have a name ...
that they are mapped to IPropertySymbol is a bit strange, but ...
I think in VB they can have names - in csharp not
Leandro T. C. Melo
@ltcmelo
@bernd5 thanks but an indexer does have a valid name
BTW, about your question @bernd5 : you could rewrite the initializer into the constructor body (prior to analysis)
I do similar things in this library https://github.com/ShiftLeftSecurity/SharpSyntaxRewriter
Bernd Baumanns
@bernd5
That is what I did - but the rewrite the symbols are different (they belong to the rewritten code ...)
@ltcmelo what is the name of an indexer?
Is "this" returned?
I would think null would be okay, too
the best is maybe to extend roslyn... I create a PR
Leandro T. C. Melo
@ltcmelo

the rewrite the symbols are different (they belong to the rewritten code ...)

correct, so what I do is to recompute the semantic model, then you get valid symbols and a correspondence

Bernd Baumanns
@bernd5
Bernd Baumanns
@bernd5
Bernd Baumanns
@bernd5
at least the GC is not deterministic
1 reply
but that is not a roslyn question it is a runtime question
Antonín Procházka
@prochan2
Hi, why are all the Microsoft.CodeAnalysis* NuGet packages of version 4.0.0 unlisted at NuGet.org and why there's no 4.0.0 version of Microsoft.VisualStudio.LanguageServices yet? Are these waiting for .NET Conf? It's confusing because VS 2022 is out already.
Joe4evr
@Joe4evr
probably waiting for .NETConf, yea
Bernd Baumanns
@bernd5
you can download the preview versions