• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dennisdoomen / reflectify / 31399659270
98%

Build:
DEFAULT BRANCH: main
Ran 10 Aug 2026 02:49PM UTC
Jobs 1
Files 8
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Aug 2026 02:42PM UTC coverage: 96.835%. Remained the same
31399659270

push

github

web-flow
Ensure that internal code is never exposed through InternalsVisibleTo (#170)

* Ensure that internal code is never exposed through InternalsVisibleTo

Reflectify is a source-only package, so its types are compiled directly
into the consuming assembly. Until now those types were plain internal
types, which means any assembly listed in the consumer's
InternalsVisibleTo could see and use them. That makes Reflectify part of
the consumer's internal API surface without the consumer asking for it.

Mark every type with [Microsoft.CodeAnalysis.Embedded] when compiled into
a consumer. Roslyn hides embedded types from all other assemblies,
including friend assemblies. Inside Reflectify's own build the types stay
public instead, which lets the spec project reference them normally and
allowed the InternalsVisibleTo entry to be dropped.

This ports dennisdoomen/pathy#54.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Let a duplicate EmbeddedAttribute merge instead of collide

Pathy is also a source-only package and declares the same
Microsoft.CodeAnalysis.EmbeddedAttribute. A consumer using both compiles
two copies into one assembly, which is a duplicate type error.

Declaring the attribute as partial makes the two declarations merge into
a single type. This needs no cooperation from the consumer, so the
REFLECTIFY_EXCLUDE_EMBEDDED_ATTRIBUTE opt-out is no longer needed.

Partial types cannot repeat a type-level attribute across parts, so
[AttributeUsage] and [ExcludeFromCodeCoverage] had to go. Dropping
[AttributeUsage] changes nothing, because AttributeTargets.All is already
the default. Three analyzers ask for it back, so suppress them here.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Dennis Doomen <dennis.doomen@greenchoice.nl>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

209 of 222 branches covered (94.14%)

Branch coverage included in aggregate %.

1 of 1 new or added line in 1 file covered. (100.0%)

403 of 410 relevant lines covered (98.29%)

5365877.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31399659270.1 10 Aug 2026 02:49PM UTC 8
96.84
GitHub Action Run
Source Files on build 31399659270
  • Tree
  • List 8
  • Changed 8
  • Source Changed 8
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31399659270
  • 1a9ca266 on github
  • Prev Build on main (#31397533381)
  • Next Build on main (#31404589923)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc