main
Unsafe evolution: extend compat mode to legacy callers (#83660)
Unsafe evolution: use unsafe keyword to denote requires-unsafe members (#83295)
Unsafe evolution: fix name of ISymbol public API (#84784)
Report CS8802 on every file with top-level statements (#83916)
Unsafe evolution: relax `safe` modifier placement restrictions (#84602)
Unions: cache some calculated results on NamedTypeSymbol representing a union type (#84589)
Reduce allocations in AbstractTypeMap (#72588)
Append chars more efficiently when creating strings (#71812)
generated move
Extensions: DocumentationCommentId and ExtensionGroupingName/ExtensionMarkerName APIs, update grouping type metadata name (#80164)
Struct layout check – break an infinite generic expansion cycle that doesn’t include the target struct (a cycle at the end of the path) (#75702)
ReferenceEqualityComparer (#78350)
Specially handle some scenarios for type parameters with 'allows ref struct' constraint (#73025)
Do not resolve diagnostics early during attribute binding (#71140)
Rename GetIsNewExtensionMember helpers (#80925)
Adjust `ContainingSymbol` for substituted local function (#75636)
Add additional information when we throw an 'unreachable' exception
Implement name an signature conflict check across extension containers with the same receiver type (#77747)
Initial support for union declarations (#82500)
Rename public API based on API review decision (#73476)
Closed classes: implement exhaustiveness check (#83120)
EnC: Mark deleted members with an attribute (#79764)
Fix HasFileLocalTypes check for constructed types (#68386)
Run 'make struct readonly' on compiler code (#63675)
Unsafe evolution: `unsafe` fields (#83694)
File types need to account for pathmap (#70322)
Remove unnecessary casts
Add friendlier error message on an explicit implementation when the return type is wrong (#80376)
Unsafe evolution: implement compat mode (#81701)
Extensions: Merge lookup of classic and new extensions (#82165)
Avoid storing information about unrelated assemblies in AssembliesToWhichInternalAccessHasBeenDetermined (#81959)
Unsafe evolution: avoid checking unreferenced assemblies (#82300)
Merge remote-tracking branch 'dotnet/main' into merge-main
SourceMemberMethodSymbol.IsMetadataVirtual should force complete declaring type when queried by a different module (#84013)
Introduce a concept of internal special types, move all members defined in special types to the SpecialMember set. (#72646)
Unsafe evolution: add `MemorySafetyRules` attribute (#81441)
Allocate less in GetTypeByMetadataName (#68415)
Unions: enforce the same order of processing for base interfaces of a member provider interface source vs. metadata. (#84664)
Move SpecializedCollections to Microsoft.CodeAnalysis.Collections namespace (#78466)
Reduce amount of allocated MissingMetadataTypeSymbol symbols during various lookup operations. (#65046)
Fix nullability check in override/implementation (#49723)
Remove unneeded `#pragma warning disable` (#64535)
Remove IDE0055 suppression
Support ExperimentalAttribute.Message (#76060)
Extension indexers: indexing with implicit indexers (#82453)
Partial properties: basic indexer scenarios and signature mismatch diagnostics (#73378)
Emit modopt for ref readonly parameters in function pointers (#68728)
Remove unnecessary suppressions (#81499)
Extensions: propagate return-targeted and local function parameter attributes (#80070)
Avoid `virtual` implementations for `AddSynthesizedAttributes` (#81289)
Unsafe evolution: add ISymbol public API (#84674)
Copilot: Fix culture-sensitive StringBuilder.Append and ToString calls across codebase and add banned symbols (#80800)
Avoid dereferencing null CheckConstraintsArgs.CurrentCompilation (#78729)
Extensions: Address follow-ups related to collection expressions (#79877)
Add actual nullable analysis support for `with(...)` elements. (#81978)
Fix error message when trying to use using-static with an invalid type (#68571)
Merge branch 'main' into features/UnsafeEvolution
Avoid cycles while binding type parameter constraints
Extensions: fix NullableContext calculation for type parameters on implementation method (#82297)
Replace string.Compare == 0 patterns with Equals/StartsWith calls (#84036)
Closed classes misc changes (#83614)
Extensions: check for collisions (#79702)
Fix regression with var pattern nullability (#53691) (#53823)
Fix nullable annotations of `SymbolDisplay.FormatPrimitive` (#79869)
Fix missing extension-type symbol handling in VarianceSafety.cs (#78230)