-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Remote exception handling (removing SoftCrashException) #40476
Comments
Calls to our remote process are wrapped in a "SoftCrashException" in an attempt to prevent crashes; this exception derives from OperationCanceledException. This backfires: our GraphQueryManager does support reporting exceptions to an info bar, so this means anything that goes wrong in the RPC then gets silently swallowed because we think it's cancellation instead. Unwrapping makes things better again. This commit should be reverted when we remove SoftCrashException in dotnet#40476.
@CyrusNajmabadi @jasonmalinowski @sharwell Please review the above proposal and lmk if you have any feedback. |
i thdink we should have a meeting to discuss this. i'm not opposed to this (i'm pretty positive on it), but i think it would be good to talk through some things, including potentially some end-to-end examples with both user-invoked and user-implicit features. For example, how this should work for something user invoked like FAR, vs something implicit like semantic classification. I think that will buld confidence to me that what we're building is reasonable and balances our engineering concerns, watson/reliability needs, and provides a good user experience in these edge cases. I find that meetings are actually better here as they tend to uncover stuff people (myself included) didn't realize was a consequence of some of these things. Can you set something up for the 4 of us (and maybe @ryzngard as our watson champ)? Thanks! |
8de9e4b2beb Merge pull request #49298 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 9ffafe72fa9 Merge pull request #49265 from JoeRobich/use-release-packages 8faef515585 Upgrade to .NET SDK 5.0 RC 2 9064d95854f Update package version to fix downgrade warning 8514a3b79a8 Use release packages for S.R.MD and S.C.I da4201e9082 Merge pull request #49170 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps cb7222c774e Merge pull request #49159 from JoeRobich/update-third-party-notices 3abd64ca117 Update License for Roslyn compilers to MIT in ThirdPartyNotices 4c195c3ac19 Merge pull request #48611 from JoeRobich/loc-fix 6512635c6e3 Merge pull request #48722 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 28ebca3eaa4 Merge pull request #48719 from dotnet/merges/release/dev16.7-vs-deps-to-release/dev16.8-vs-deps 32f44a2deaa Merge pull request #48705 from dotnet/merges/release/dev16.7-to-release/dev16.7-vs-deps 6c1f79843a5 Merge pull request #48713 from dotnet/merges/release/dev16.7-to-release/dev16.8 ab3e567a9d1 Merge pull request #48706 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 8fa76492a86 Merge pull request #48691 from dotnet/dev/gel/AddBuildPool-dev16.8 3192127ece8 Merge pull request #48690 from dotnet/dev/gel/AddBuildPool-dev16.7 0feb7f4e94c Add official build pipeline in dnceng c9ede61c79a Add official build pipeline in dnceng 5fad08ef408 Merge pull request #48653 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 2419b32af99 Merge pull request #48615 from dotnet/merges/release/dev16.7-to-release/dev16.8 620504581b7 Merge pull request #48616 from dotnet/merges/release/dev16.7-vs-deps-to-release/dev16.8-vs-deps e344030f43c Use preview image for integration tests. 2826318932b Use preview image for integration tests. 114ee58e963 Merge remote-tracking branch 'origin/release/dev16.8-vs-deps' into loc-fix 713efb0e68d Merge pull request #48619 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 267484257da Merge pull request #48400 from jasonmalinowski/fix-exception-for-adding-incompatible-source-generator 41036e261fc Fix tests to work with different localized strings e0d0c9263dd Merge pull request #48550 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 600c0dadd19 Merge pull request #48541 from dotnet/merges/release/dev16.7-to-release/dev16.7-vs-deps 3aecb72761e Merge pull request #38138 from JoeRobich/handle-disabled-undomanager 1520e4f114e Merge pull request #48253 from ryzngard/cp/16.7_rename 5df35c46ea6 Merge pull request #48526 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 97bb6aecd0b Merge pull request #48348 from jasonmalinowski/fix-go-to-definition-of-source-generated-file 75b30cb85aa Remove .pre for integration tests in 16.7 8c3beca5154 Merge pull request #48485 from dotnet/dev/jorobich/update-for-preview5 5a1e4f6bdf2 Loc fix 4d199dba9d5 Merge pull request #48510 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps c818811a0f4 Merge pull request #48401 from sharwell/check-syntax a48db44e7f5 Merge pull request #48484 from sharwell/enable-lookup-lite a6c6908d704 Update PreRelease version for Preview 5 dc7b96524dd Suppress assertion failures coming from ChangedText.Merge 89974e08134 Merge pull request #48456 from JoeRobich/get-themeid-without-dynamic 976ddf7331e Handle disabled UndoManager during InlineRename 6ad4b00b2c1 Ensure that tokens are re-fetched to the position in the reset point in SyntaxParser.Reset (#48393) b81df3ef37e Reverting bad translation e65c66cc47e Disable assertion UI in ServiceHub for debug builds 5cdf42ad5c9 Remove the .dotnet PATH element before launching integration tests 6b43c8820f3 Work around editor dismissing our light bulbs 9d7effb7c31 Update primary Roslyn processes for test diagnostics 5fdf3684de5 Capture the activity log for test failures 9903e43d71e Loc Checkin d51593e91bf Fix NullReferenceException in GetSuggestedActionCategoriesAsync 121e711ccd7 Dont try and load generators on FX build of tests bbf1c0d9cad Get the current VS ThemeID without using dynamic b8e75057eb5 narf d04a909a562 Clear variables set by CI builds 343537a7a7b Don't load fx ref'd generator after warning about it 723971cc221 Merge pull request #48421 from jasonmalinowski/update-documentation 5866ceb3552 Fix warning sentinal tests c4df3c25164 Merge pull request #48418 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps f18bfa7d3aa Fix tests bfd5b1c0196 Issue a warning in the compiler for .NET FX generator 237721be7aa Update documentation for new minimum dependencies 24aa777ca32 Merge pull request #48407 from jasonmalinowski/fix-integration-tests d9f64653ee7 Work around https://github.com/dotnet/sdk/issues/13427 a30757d80b2 Conditionally mark InitializeLifetimeService obsolete for .NET 5 d95d41181ab Suppress nullability false positives 81457f23bba Fix IDE0044 (Make field readonly) c756744877d Use SupportedOSPlatformAttribute where necessary aaff726daa6 Upgrade our .NET SDK to 5.0 RC 1 ae53ca54c1d Avoid binding the world looking for target-typed new c271c728d37 Don't crash if you reference a generator built against .NET Framework 82cb26e9633 Merge pull request #48379 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps d5b68b065b0 Merge pull request #48340 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps e7a0feef33c Merge pull request #48264 from JoeRobich/fix-colorschemes da04905459c Fix Go to Definition to a source-generated file eea231341c2 Handle indexers in nested object initializers (#48168) 42f02a6f1a6 Ensure initial binding always binds to natural type (#48205) 75d31ee941c Merge pull request #48261 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 204d6b046aa Fix initialized check in ColorSchemeApplier 88585560597 Update VisualStudio2019.pkgdef with VB XML Literal color bec9694f82e Merge remote-tracking branch 'upstream/release/dev16.8' into merges/release/dev16.8-to-release/dev16.8-vs-deps 1e606ed021d Reverts IServiceBroker changes (#48221) 443817eef38 Merge pull request #46393 from ryzngard/issue/46192_nre_save_rename bad92993584 Merge pull request #48224 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 141ef2d89ea Merge remote-tracking branch 'release/dev16.8' into release/dev16.8-vs-deps 9de2d24ce25 Merge pull request #48201 from sharwell/oop-fixes 4123b1c06ee Work around incorrect implementation of WithMultiplexingStream 8ca0f59649d Allow four parallel jobs for integration tests 385b56481bf Enable 64-bit (out-of-process) integration tests 57759e39f55 Do not cancel operations after point of no return 24bcf13ae67 Remove ClientDisconnectedSource 0d0ca13201e Merge pull request #48185 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps c020fe868d7 Wait for GetAssetsAsync before returning ebb674f4b49 Make sure to complete copy before returning d0a23d1c23c Merge pull request #48155 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 3f30282eca9 Avoid reporting disconnections for CancellationToken mismatch 1c155c59add Handle explicit conversions between enums and native integers (#48041) c2a866c10a1 Merge pull request #48066 from 333fred/func-ptr-in-ref 1dd007226c7 Merge pull request #48152 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps f60ff7e6db1 Prevent potential deadlocks when reading/writing assets (#47864) c634d784b9d Merge pull request #48145 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps d77f1603bd2 Mark APIs as shipped (#48059) 96749e4f104 Merge pull request #48122 from sharwell/background-thread 1caf93c2fc9 Merge pull request #48120 from sharwell/no-collision-resistance f1ec4806292 Merge pull request #48121 from sharwell/callback-targets 1f7397e4747 Ensure IServiceBroker is used on a background thread e0e3655dd23 Provide required callback targets 2755661de55 Disable hash collision resistance for user data e4b7d60efbd Rewrite function pointer arguments during local rewrite dd7319ea5e3 Merge pull request #48054 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps de348c5a779 Put generated files to disk: (#47047) a3cf5b6a0bc Merge pull request #48050 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 3b1a465f68f Fix inference with ref parameter with maybe-null value (#47952) 9834441b809 Merge pull request #48046 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps b7e71f04ba3 Merge pull request #47710 from mavasani/GlobalConfigFix b4aacc3e27f Merge pull request #48032 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 1f53c66ae5a Handle cycles in IsValueType and IsReferenceType binding constraints (#47968) f33a0fd1d5e Don't optimize large tuple literal switch inputs (#48028) e4ada1389c9 Merge pull request #47950 from 333fred/unmanaged-callers-only-pe-attributes 2687666d1f5 Fix EnC unexpected error: 'Sequence contains no elements' (#48029) 02d5b4bdd9f Expose MaxLangVersion publicly (#48013) 3dea0a0edf0 Merge pull request #47981 from 333fred/api-review 6791eb21f52 Merge pull request #48015 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 4e363110b93 PR Feedback. 00752581258 Remove outdated comment. 860a48f4baa Missed a word. a81248b893d PR Feedback: c95fcc6183d PR Feedback: f008c26e500 Use explicit null instead of default. ad46a43acde Refactor PEMethodSymbol loading of UnmanagedCallersOnly 307fc6b7e8c Apply suggestions from code review 8b31307701b Merge pull request #47997 from jasonmalinowski/throw-exceptions-for-invalid-language-versions 67b59f65046 * Refactoring `GeneratedKind.Generated` to `GeneratedKind.MarkedGenerated`, giving us better future ability to add something like `InferredGenerated` if we want to expose a heuristic. * Added documentation comments. c1ea403ea0f Use a GeneratedKind enum instead of a bool? f2f3e1a9b54 Address API Review for function pointers APIs. cec38d8c307 Merge pull request #48001 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 8b2b8a80107 Merge pull request #47992 from sharwell/report-non-fatal f4ed3f8688d Merge pull request #47989 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps bba5f3c5f68 Throw an exception if we can't parse language version b036252a087 Report non-fatal errors for failed tasks 81f358bfe7f Add elastic trivia to Inline Declaration if necessary (#47916) 30a778a41d2 Merge pull request #47963 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 8d8774102d6 Merge pull request #47949 from mavasani/DiagnosticDataRoundtrip e62402c8fa4 Merge pull request #47944 from mavasani/Fix_IDE0079 cde9b143af5 Merge pull request #47955 from AlekseyTs/VarianceSafetyForStaticMembers_103 d5e85604933 Simplify c1d3eaa4615 Address feedback cfa66fb04a0 Preserve additional location in non-source files when round tripping diagnostic 315c5bf068f Do not export IDE0079 (remove unnecessary suppressions) analyzer in CodeStyle layer 9db4785fa97 Merge remote-tracking branch 'upstream/features/VarianceSafetyForStaticMembers' into VarianceSafetyForStaticMembers_103 bd5670384ae Merge pull request #47943 from AlekseyTs/VarianceSafetyForStaticMembers_102 990fe5f78b9 Remove PROTOTYPE comments from tests for variance safety with static members. faf28c5296d Merge pull request #47932 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 6b285c423c7 Merge pull request #47923 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps c9977cdb11e Merge pull request #47903 from sharwell/service-broker-background 808c1facaae Records: Warn if Equals is redefined but not GetHashCode (#47515) 8f3106ba519 Merge remote-tracking branch 'upstream/release/dev16.8' into merges/release/dev16.8-to-release/dev16.8-vs-deps 4e4820e9045 Update shell package versions e39abade418 Check NotNullIfNotNull in implementation (#47649) c2646e0de1e Update versions 7362973a12a Merge remote-tracking branch 'upstream/release/dev16.8' into merges/release/dev16.8-to-release/dev16.8-vs-deps 759a007bc07 Merge pull request #47899 from tmat/FixDesignTimeDocument 40adddcf0ca NullableWalker correctly handles positional arguments for Valuetuple and Interlocked (#47523) 1e33fe6f167 Merge pull request #47723 from Cosifne/dev/shech/RemoveUnusedParameterFix c785833f734 Revert "Require partial method signatures to match" (47576) (#47879) 981b4618ecf Merge pull request #47651 from 333fred/unmanaged-callers-only-conversions f3b26e23c77 Issue a warning when a global analyzer config contains an invalid section name. (#47728) 42202d8b0eb Ensure IServiceBroker is used on a background thread 55bc9ff2848 Corrected references to language-specific syntax nodes in documentation (#47674) 60994a80c23 Result of << operator for native integer constants is platform-dependent in unchecked context (#47881) 94570c47761 Fix synchronization of DesignTimeDocument d2351bc78ee Enable automatic discovery of global editor configs (#47803) 4158203a133 Merge pull request #47812 from Cosifne/dev/shech/checkPathChars f34c86cdf0d Clean up test code. 87c2c9c400e PR Feedback 3c851771f36 Merge branch 'master' into dev/shech/checkPathChars 77d11735dcb Merge pull request #47888 from AlekseyTs/VarianceSafetyForStaticMembers_100 32e10c29cc0 Merge 'upstream/master' into VarianceSafetyForStaticMembers 7e89bce3549 A copy constructor shouldn't prevent an automatic addition of a default instance constructor for a record. (#47850) d171b0b4742 Don't offer to fix naming for record parameters (#47509) 172605381e6 Merge pull request #47860 from CyrusNajmabadi/recordTest 585e5693bdb Exclude constant and static fields from record's PrintMembers (#47868) 8d44c7fdbdd Merge pull request #47877 from sharwell/cleanup-extract-method ee2f2904204 Improve comments for top-level statement insertion d148f06f954 Merge pull request #47537 from sharwell/non-null-compilation ffa4e6d2195 Merge pull request #47554 from sharwell/disallow-fail 6e4a781971b Don't warn on unused record primary constructor parameters (#47830) c560a934285 Fix incorrect assertion in 'TestBuildProgressUpdated' 0457da1bdbf Merge pull request #44453 from sharwell/top-extract-method 81bc312a1e7 Merge remote-tracking branch 'dotnet/master' into disallow-fail f1a29d00431 Merge pull request #47854 from dotnet/merges/master-to-master-vs-deps e91ccb5cff7 Use MessagePack for serialization, move services to IServiceBroker (#47461) 5467491f46f Merge pull request #47863 from Cosifne/dev/shech/policheck2 031cd7533c1 Merge pull request #47819 from mavasani/CategoryExclusions 4e2cb832a4d Merge pull request #47846 from jasonmalinowski/fix-issues-with-opening-source-generated-files 4f600e6ae1a Merge pull request #47844 from genlu/GenerateName eab244dd3f2 Merge pull request #47848 from mavasani/InitialLoadPerf 51917b53298 Fix MemberNotNull attributes on substituted methods (#47818) 7dad16ec018 Add regression test (#47851) fd705785326 Change hang to blocking 8559c887875 Maintain the change of the previous change 07c5320667f Add a test for https://github.com/dotnet/roslyn/issues/47858. cd8417340a6 Add tests for renaming records. 2ea0d2c0fb3 We don't have to change the /langver to preview 68cc9517271 When opening a generated file, navigate to the correct span 29f915d0224 Remove unnecessary workspace factory service c13da4cee5d Avoid writing out the temporary file if it's already there 12d79540761 Fix tests aeb39b947fc Fix formatting 7a36f748de9 Merge pull request #47165 from 333fred/p8 1873be3c341 Merge branch 'InitialLoadPerf' of https://github.com/mavasani/roslyn into InitialLoadPerf ec8dcbd79be Fix test 26dec440a03 Update src/VisualStudio/Core/Def/Implementation/TaskList/ExternalErrorDiagnosticUpdateSource.cs f714fcda5d8 Address feedback c62f6375b46 Dont crash generate variable (#47697) fbd00bf8952 Fix typo d7e659906dc Add tests for nullability with IDE0007 diagnostic (#47827) ed7b6873699 Fix convention comparison, update baseline. 6f5859ccfd6 Merge pull request #47764 from CyrusNajmabadi/extendedPartial 2be717420ad Merge pull request #47811 from CyrusNajmabadi/disCan 47a06b376c9 Some more error list performance improvements bdb0bd477a7 PrintMembers should exclude indexers and setter-only properties (#47734) 201cb8ad847 Merge pull request #47794 from dotnet/merges/master-to-master-vs-deps d8d8778d562 Move to the regular preview buildpool. 9400c533a69 Update src/Analyzers/Core/Analyzers/RemoveUnnecessarySuppressions/AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs c41dd77db23 Simplify CallKind handling a bit more, add more testing for null conventions supplied to the CallConvTypes array. 96fd856eae6 Add tests a16585dc5dc Allow genearted local function parameter name to shadow variable e6a0bb1d4cc Disable 64-bit integration tests. Tracked by https://github.com/dotnet/roslyn/issues/40476. 1b7c9c44023 Refactor the overload resolution checks to treat unmanaged callers only and regular the same, and simplify the comparisons. bd3a0b49d72 Allow record's `parameter_list` to be empty. (#47805) b2ff7401e11 Update src/Analyzers/Core/Analyzers/RemoveUnnecessarySuppressions/AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs ed1b58c7a76 Don't map completion items to function (#47412) 7e65d92eee1 Merge pull request #47652 from 333fred/readonly-init c91ba6fbef3 Extend the Mac Job Timeout (#47820) 1c4909d24fc Require partial method signatures to match (#47576) b523cbe7db6 Preserve CustomObsoleteDiagnosticInfo when changing severity (#47777) 7495df1e17a Fix issue ref (#47822) 06f9495f20b Fix nullable suppression in conditional access (#47712) b8cd43a61ce Merge pull request #47748 from mavasani/FixWatson 0c95f73b786 Adjust workspace and EE symbols. ed2982191a7 Use verbose logging on Unix (#47813) 0cc1270e4c1 Fix accidental line delete before commit 5951c305d74 Support category-based exclusions in user option for unnecessary suppression analyzer 526ab29284b Move C# Next to the top and add mixed deconstructions (#47745) 70076d85c72 Missed a word 626bb15235e Refactor unmanagedcallersonlydata into a C#-specific class, some small test refactorings. 39bb541d158 Addressed PR Feedback 285a8e3bbd0 Update comments in CopyTypeCustomModifiers() a048b6c29d2 Don't remove leading trivia when removing suppression attributes (#47733) 835f2057527 Create conflict annotation when renaming method to get_ or set_ matching property name (#47671) a2bffa1d015 PR feedback 0120c584c56 Remove test caching layer (#47769) 2a0aa9dae08 Reset all the whitespace 9c2c4f4a83b use the additional helper 60dc82d88ab Consider NativeIntegerAttribute in CopyTypeCustomModifiers() (#47536) 70a8ae7193d Add a comment 621c43fa5bf Wrap the logic 923f7efd680 Attach service to workspace disposal token. 6ac1e8a4ef7 Add a test 697f1348710 Merge pull request #46884 from DevSnicket/33047-fix-msbuild-workspace-default-global-property-override 018842c6800 Don't change the file name if the text is invalid 927ba4c9624 Add links to feeds back to readme (#47757) 7a4a7fb800e Fix test 37a8fc99f56 Added missing verifications skip. 5cbd52bee82 Merge pull request #47780 from dotnet/merges/master-to-master-vs-deps e3e892c94ae Merge pull request #47785 from CyrusNajmabadi/negativeCategory 26458c6b0c6 Merge pull request #46597 from mavasani/ReadDiagnosticsCrash 93cd0816be3 simplify 7c28543da7d Supply completions for negative regex categories as well. 1ae01176585 Fix test f454238e8b0 PR feedback 7d5f6f4f745 Merge pull request #47731 from jmarolf/bugfix/msbuildworkspace-duplicate-analyzer-references 6f3b79f469e SignatureHelp for record base type (#47670) acd61323b62 Merge pull request #47770 from dotnet/merges/master-to-master-vs-deps 163495ca8ae Merge remote-tracking branch 'upstream/master' into readonly-init * upstream/master: (114 commits) Remove langversion restriction for source generators. (#47714) Adjust disambiguation rules for type pattern in a switch expression. (#47756) Delete decommissioned benchview tool scripts (#47752) Emit conversions between native integers and pointers directly (#47708) Typeless expressions should contribute nullability to lambda return (#47581) Use a distinct diagnostic ID when an exhaustiveness report uses an unnamed enum value. (#47693) [master] Update dependencies from dotnet/arcade (#46586) Change `Location` of record's primary constructor to point to record's identifier. (#47715) Add public API test for extended partial methods (#47727) Rename in CheckValidNullableMethodOverride (#47718) Update docs Add more doc comments Add comments and doc comments for ExternalErrorDiagnosticUpdateSource Add documentation remarks for syntax kinds (#43646) Disable TestCancellation (#47725) Classify function pointer punctuation (#47668) Disable flaky optprof test Handle NotNullIfNotNull in delegate creation and overrides (#47572) Adjust QuickInfo on record BaseType syntax (#47656) Don't exclude events for NameOf context ... cc166ee892d Restrict readonly from being applied directly to init accessors, and prevent them from being considered readonly by the language. ee8a29e9b3f Skip failing interactive test. 258332227f6 Remove langversion restriction for source generators. (#47714) 2ce190f3683 Adjust disambiguation rules for type pattern in a switch expression. (#47756) cfb91774477 Use net5.0 a8ed24bf207 Remove stale comments 400f5ecaa21 Retarget interactive host to net50 462e45bd363 Merge remote-tracking branch 'upstream/master' into 45519 1c23f8965e2 Merge pull request #47688 from dotnet/merges/master-to-master-vs-deps 172426e034c Delete decommissioned benchview tool scripts (#47752) 5506b89ef72 do not pass duplicate analyzer references to ProjectInfo 3679deb351b Add tests 4e29e0af82e Add tests 2ec9712c532 Add tests 3fe8788476b Add tests 71e6a3be24b Emit conversions between native integers and pointers directly (#47708) 1d50fad12f5 Add test 70e20a4d94d Add test 8c7ae5d66bc Completion support for partial methods 0b4a2850637 Update comments f5fc2776b63 Add warning wave warning 700eca2099e Add convert-for test 30ab5d72d42 Add convert-for test d0ab2ade239 Add add-parameter test 9cb6cabd0ea Add remove unused member test 1129f858798 add symbolkey test 7b1e861c2ac Find refs tests. 2689a0328a7 Add MAStest 4ae6eb3552a Merge pull request #47689 from mavasani/ErrorListFixes a8c1048bb01 NRT 9eb8650da35 Add navbar tests. b92dff27a33 Update RpcContracts to 16.7.50 9d2d36feb31 Fix regression in SuppressMessageAttributeState.TargetSymbolResolver 87f4c9dfc03 Typeless expressions should contribute nullability to lambda return (#47581) 1d69a1dcc30 Use a distinct diagnostic ID when an exhaustiveness report uses an unnamed enum value. (#47693) b93d04a8f0a [master] Update dependencies from dotnet/arcade (#46586) 60e5b080410 Change `Location` of record's primary constructor to point to record's identifier. (#47715) 5721ea69826 Add public API test for extended partial methods (#47727) e6475bc8f7a Rename in CheckValidNullableMethodOverride (#47718) 5f8ed94d65f Update docs 4d88295799f Add more doc comments 3ff2738a946 Merge pull request #47650 from genlu/ExcludeEmptyItem c58de9ac799 Add comments and doc comments for ExternalErrorDiagnosticUpdateSource e60323c004a Add a test 5f0b751a12a Add documentation remarks for syntax kinds (#43646) c559d9110d3 Merge pull request #47716 from genlu/optprof 30ccbdec9c7 Disable TestCancellation (#47725) 5921941518a Resolve remaining conflict 2f9b85883ad Merge pull request #47686 from Youssef1313/patch-7 525c301fbf5 Merge pull request #47647 from genlu/TriggerLocation 04ac1a925cf Merge remote-tracking branch 'upstream/master' into merges/master-to-master-vs-deps 2e3ff48bf91 Use the simple way to fix 7f893855da1 Merge pull request #47665 from jmarolf/infrastructure/use-graph-mode-in-build 873ca67f247 Add a simple fix a2feb627191 Classify function pointer punctuation (#47668) 6bedf1b464c Disable flaky optprof test 9737cff23a0 Handle NotNullIfNotNull in delegate creation and overrides (#47572) c06c096f2b8 Merge pull request #47692 from 333fred/iop-threading-mitigation 5d719960bfc Merge pull request #47657 from allisonchou/ChangeSignatureTargetTypedNew 66b8559cebe Merge pull request #47679 from alrz/ttn-lambda-completion 8c545930d3d Ensure that warnaserror works identically for warnings configured in ruleset and global config 0be240d7267 Adjust QuickInfo on record BaseType syntax (#47656) 58a97afb180 Don't exclude events for NameOf context c7c2a88a2cb Merge pull request #47695 from jmarolf/bugfix/adjust-size-for-elements-in-naming-options eba6123a3db Merge pull request #47685 from CyrusNajmabadi/newtest 8f395db3184 only specify minimum heights and widths 6656b9131e4 Use the right node. 9d48761c7ba Fix nullable warnings 83be0932e8e Mitigation for IOperation threading issue 7cfccacc7f0 Merge pull request #46894 from jnm2/convert_to_switch_ending_comments 71209e8ca1f Indent braces on 'with' expression relative to starting line (#47654) 20e320e101f Remove unnecessary field 6ebae0161a4 Add bug link ee97b3a3fdc Fix `new()` initializer completion for nullable types (#47680) 99826d46604 Error list improvements 9f38303f2ab Merge pull request #46022 from CyrusNajmabadi/asyncNuget2 898c6895efc Add failing test for #46472 bd843fb4320 Add test to validate non-repro issue. 23da0072591 Unify code into BaseObjectCreationExpressionSyntax c90864788b3 Nullability attributes in user-defined conversions (#47555) 56f747b362e Merge pull request #47639 from dotnet/merges/master-to-master-vs-deps 91f6e0c2892 Align C# and VB preconditions for GetActualBoundReferencesUsedBy (#47645) 79d801cdbbb Decision dag: union the set of values when there are two predecessor states. (#47567) 9ca582b59a4 Merge pull request #47644 from allisonchou/IntegrationTestGap 9499cafa4ac Fix steaming ISB service hang (#47669) 30170d32ac4 Fix lambda completion inside `new()` arguments 239b116ee20 Use comparer dba449c3c8a nrt a30cc930b85 Merge pull request #47618 from CyrusNajmabadi/vbgenerator 068a075f131 Generate unsafe constructors (#47653) 6e4dd9f4a74 always nuget restore in graph mode 7d813b57f5f Create WithoutLeadingTrivia extension method a91b8d555c8 Modify tag count to actual value 63d82191a28 Add change signature support for target typed new 5045f9461a0 Wait for reference highlighting before navigating 643961fc926 Implement stub FindAllReferencesWindow.SetProgress aeb0a50a3d0 Disable validation of incremental parsing ae59b76365f Fix failure to handle null DataLocation 3328bd4fe4d Remove WatsonTraceListener from Remote.ServiceHub 3ef7b361f42 Initialize fatal error handlers in VS and OOP 204bbc364dd Merge pull request #47643 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps 86dbfaa69aa Added init test that reassigns `this`. 8779330e2c7 Fix test formatting, add additional verification. d03e0fbfe23 Exclude empty item from completion list 3b2a9a9574e Add test 5697bcdf632 Fix test 6966ff0684d Another test 852aa0cf1e6 Use saved trigger location from session for commit b9257960b15 Save TriggerLocation in IAsyncCompletionSession's property bag 3a976eb38d0 Merge pull request #47590 from genlu/EditorBrowsable a3abec46eb9 PR feedback d644b50cfb3 Cleanup existing code 81460a2c4b6 Merge branch 'master-vs-deps' into merges/release/dev16.8-vs-deps-to-master-vs-deps 25c3ca4d059 Allow init accessors in readonly contexts 0dda3659554 Merge pull request #47309 from genlu/elfie eb2d06f5dbb Possible integration test fix 6965a13223d Merge branch 'master' into p8 7f6f9d6c6a3 Implement UnmanagedCallersOnly conversions support e4d9d5bd8ee Merge pull request #47540 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps e53ffb73115 Brokered services (#47216) 6bc9aabe411 Eliminate allocation on a hot path with cyclic references (#47544) 98c8f9f6242 Merge pull request #47552 from Youssef1313/patch-7 6876be9d11c Fix test comments (#47622) af4fe0d7c39 Disallow native ints inside nameof (#47497) aaa20099794 Add distinct error for nullability mismatch 63bea1d1d10 Merge pull request #47607 from dotnet/dev/tmat/dumplogging64-1 70e1ef82369 Merge pull request #47625 from dotnet/merges/master-to-master-vs-deps d885b7981da Merge pull request #47616 from dotnet/merges/master-to-master-vs-deps 708a7574616 Make field readonly 8b2869ef5ca Refactor to static field ac1df7cc2e9 Add WorkItem 91e949823f7 Use the correct feature name for error message (#47518) 5f0cfa77edc Merge pull request #47516 from Youssef1313/f1-fixes 82c5af6284f Merge pull request #47608 from dotnet/merges/release/dev16.8-to-master ed9c69762de Fix handling of retargeted fixed size fields (#47429) 84624addac2 Fix incorrect mapping of nodes/tokens in VBgrammar generator 80cf6c8e032 Add 64-bit xunit.console process 6f34b4797de Merge remote-tracking branch 'dotnet/master' into extract-method a4efc4a972b Merge pull request #47570 from genlu/ReadonlyVoid bd30ca1fbfc Merge pull request #47527 from dotnet/merges/release/dev16.8-to-master a334059484c Update numbering e9942c9978b Fix tests 08c0f9ea05c Merge pull request #47472 from 333fred/nullable-bug 604006fd5a1 Simplify test parameter afbbec1a52f Mark methods static to avoid new CA1822 reports in .NET 5 Preview 8 ed07df55612 Improve messaging for integration test failures 4e82fb1b079 Avoid duplicate errors for tuples 19b5a24cfa9 Use AllowDefaultLiteral in SignatureHelp 33e17d11219 Fix tests ad40bde0627 Check EditorBrowsable attribute for unimported ext-methods completion de0c6c860ac Merge pull request #47479 from jasonmalinowski/add-function-pointer-calling-convention-support 18da326c911 Address PR feedback. fd307674229 Merge pull request #47133 from sharwell/async-continuation 33072177eb9 Merge pull request #47566 from sharwell/fix-interactive a04547a84ce Merge pull request #46957 from davidwengier/FixMakeLocalFunctionStatic 64f2392e633 Merge pull request #47575 from dotnet/merges/master-to-master-vs-deps 61f2563af04 Fix tests 0d6a84f3234 Merge pull request #47148 from Youssef1313/patch-15 d57cda76c2b Merge pull request #47561 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 3183fa21faf Merge pull request #47486 from nschuessler/nschuessler/issue46942 b085fc71714 Address PR feedback - doc and tests 092a76dfbd2 Revert changes 6688ea3f5d2 Add keyword recommenders for managed/unmanaged in function pointers 7f9481680ec Add some comments explaining what is what 99bdf7cf388 Add support for the calling convention types for a unmanaged function pointer 5966b513967 Add more comments to the CompletionProvider ordering tests a9f5f7a9798 Change how we detect if a string is workspace XML or not 077f1bc7095 Require partial method signatures to match fbd2a96bfd0 Fix inconsistent FatalError references 40aef0c403a Ignore IOException when setting OutputEncoding 688b53474d3 show void keyword in completion after readonly in struct 17736ac45d1 Fix "copy" constructor and affected tests. 1bb22965e71 Merge remote-tracking branch 'upstream/release/dev16.8' into merges/release/dev16.8-to-release/dev16.8-vs-deps 00edbcefad1 Reuse byte arrays for common attribute signatures (#47502) 26ac1bd8850 Merge pull request #47543 from dotnet/merges/master-to-master-vs-deps ebdda4699f6 Merge pull request #47473 from Youssef1313/47463 70c2cf30107 Merge pull request #47383 from alrz/ttn-ide d4fa90b43ab Update Elfie version 2cb265a7300 Merge branch 'master' into merges/release/dev16.8-to-master 55585ff9d2d Merge branch 'master-vs-deps' into merges/release/dev16.8-vs-deps-to-master-vs-deps fdd1e26d320 Pass along listenre f64a35b6fbe Doc 1c6cf4a37c2 NRTify df7b9e26992 Use new API for dealing with disposal token f5684bb3132 Merge remote-tracking branch 'origin/master' into nschuessler/issue46942 6c55c34fff1 Update src/VisualStudio/CSharp/Impl/LanguageService/CSharpHelpContextService.cs 518a02afa4e Merge pull request #47525 from sharwell/doc-listener 1031e1c4915 More CR comments. ade30af44df Fix incorrect assumption about EndListening and completed tasks 7b7c5ef2e4a Fix nullable analysis of lambdas within conditional expressions (#47405) f532db131a0 Update CSharpHelpContextService.cs 98630752c84 Merge remote-tracking branch 'origin/master' into nschuessler/issue46942 32e519267c5 Update src/VisualStudio/CSharp/Impl/LanguageService/CSharpHelpContextService.cs f0e0e43c1ea Merge pull request #47547 from dotnet/merges/release/dev16.7-vs-deps-to-release/dev16.8-vs-deps f3027ac1fc1 Merge pull request #47535 from Cosifne/dev/shech/policheck 7ee7c540e3b Merge pull request #47546 from dotnet/merges/release/dev16.7-to-release/dev16.7-vs-deps bb8910548c0 Merge pull request #47545 from dotnet/merges/release/dev16.7-to-release/dev16.8 85ca92fba9c Merge pull request #47534 from mavasani/BulkConfigure a3738c4b695 Fix crash in SpillSequenceSpiller (#47428) e5c807539b5 Update SyntaxNodeAnalysisContext.Compilation to not return null 3d23f0078c3 Review feedback applied. 20760c9123e Merge pull request #47475 from jasonmalinowski/fix-function-pointers-with-minimumaccessibilityvisitor 232378da7b8 Change the word to allow list b446afd3475 Merge pull request #47529 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps ea7c2e78280 Merge pull request #47530 from dotnet/merges/master-to-master-vs-deps 77d545de5d4 Update src/Workspaces/Core/Portable/Shared/Extensions/DiagnosticDescriptorExtensions.cs 50c3b886298 Account for bulk configuration editorconfig entries for computing effective descriptor severity in IDE 290abd3f020 Merge pull request #47507 from jmarolf/infrastructure/add-links-to-issues 38c8b169469 Document SyntaxKinds (#47257) 002ac579fbc Add support to the MinimalAccessibilityVisitor for function pointers 8adbb93222e Merge pull request #47480 from allisonchou/RevertCommitCharactersLSP 4b1630c0948 Updates from code review b511bb8eae2 Move unshipped features to C# Next (#47483) 2e096280f64 Merge pull request #47466 from dotnet/merges/master-to-master-vs-deps 0ac28a37773 Document InstallTraceListener conditions 650d32dc848 Merge pull request #47500 from sharwell/debug-assert 6c9ac78d27f Merge pull request #47372 from Youssef1313/parenthesis-bug 9040827d8fb add link to building testing and debugging 5f6164b9702 move api section further down 3505bcd6444 Avoid enum boxing for DeclarationModifiers (#47501) d25354fb950 Fix merge conflicts 92f70323dce Merge pull request #47416 from Youssef1313/patch-14 35b521c2d1b Merge pull request #39396 from tiesmaster/36913/fix-brace-code-style-for-switch-expressions/dev a2b5735405f Use SuppressNullableWarningExpression 8aa9294368f Fix test 3db401f5916 Fix F1 keywords clashing for !_CSharpKeyword 82c533df894 Fix modifiers order in auto-generated code 29cc47c5dd7 Update AnalyzerManager.AnalyzerExecutionContext.cs 0b7a3b4f876 Update AnalyzerManager.AnalyzerExecutionContext.cs 5c73d68dae7 Use pattern matching 7449e6ec79a small update to questions section c6006747c00 re-write contributing section 2d757dcd3db have the API section point to public docuementation d7567400dfe cleanup language discussion section 177d2b4a6b6 Use a module initializer to install ThrowingTraceListener 3115ff84ef7 Avoid trying to boost on non-supported platforms (#47373) 07592d43a60 Merge pull request #47400 from sharwell/solution-asset 8c2c2e90b27 Merge pull request #47417 from Youssef1313/patch-27 2181ab3668f Merge pull request #47458 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps e680e54ad68 Fix for issue 46942. 1f426b14a4a Merge pull request #47453 from dotnet/merges/release/dev16.8-to-master ac497e1aecc Remove unused using 4750eeaa538 Add detailed assertion message d9eb166ce66 Fix the xlf file b0827cf6b49 Merge pull request #47274 from benaadams/Devirtualize-TokenMap 341d08ab5f4 Update the xlf file 4622a98c51e Update LocalFunctions.cs acd14f20f94 Update CodeGenLocalFunctionTests.cs 0d217f9d25d Report errors binding to native integer operations with -langversion:8 (#47388) f9b3987d2c5 Merge pull request #47311 from 333fred/unmanaged-callers-only-errors 7268be17e6a Remove TODO from public documentation (#47370) 4556e572b7d Merge pull request #47468 from CyrusNajmabadi/staticLambdas 0d653953977 Accidentally took parts of suggestion mode change 80e3df4014b Revert commit characters' 274b4bb8358 Strengthen contract in SerializableSourceText per code review 548770c123f Pipe through ChecksumAlgorithm from serialization a7287667193 Fix extra warning for unused local function 54348a034ae Fix "path cost" calculation when computing the shortest path to the exit of a decision dag (#47407) a68269fe562 Short-circuit constant expressions when checking for mutating expressions. (#47422) 9dcab54db4d Merge remote-tracking branch 'upstream/release/dev16.8' into merges/release/dev16.8-to-master 37253fedffa Merge remote-tracking branch 'upstream/release/dev16.8-vs-deps' into merges/release/dev16.8-vs-deps-to-master-vs-deps c909ff70eaf PR Feedback: 50a3edeb8f1 Fix spelling 7e57a2b4495 Correctly get binder when a local function is the first thing in top level statements 472344cb7fc Merge remote-tracking branch 'dotnet/master' into 36913/fix-brace-code-style-for-switch-expressions/dev cbb7b5a878a Fix behavior of AsyncQueue<T> after cancellation 78a733f334d Run continuations asynchronously where necessary fa530fe3096 Update EndToEndTests.cs (#47464) 7a765162dd2 Use static lambdas to better express intent concisely 7f22104a0e6 Use static lambdas to better express intent concisely d00485f836f Use an awaiter type that's guaranteed to be fully unmanaged on all platforms. fc1fed50480 Added clarifying comment and removed an unnecessary null-conditional operator. de6b78aa2df Merge pull request #47397 from 333fred/update-sci f0ba07c3ab0 Merge pull request #47459 from dotnet/merges/master-to-master-vs-deps 490dff63663 Cleanup and documentation from code review a9be8869e51 Simplify code in SerializableSourceText 8a08c8ec7c1 PR Feedback b4f7e684bab Fix initializer indentation for 'new()' expression (#47456) 48f7deb530a Merge pull request #47401 from dotnet/dev/jorobich/export-light-color 82515c1f710 Merge pull request #47452 from sharwell/value-or-default bfbd19ed357 Merge pull request #46817 from MaStr11/PragmaWarningDisableTooltip 100f4bee62f Merge pull request #47454 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps aca8e3b6f1d Merge pull request #47375 from Youssef1313/patch-26 32cd40ea489 Merge pull request #47450 from dotnet/merges/master-to-master-vs-deps 94d81177688 Rename GetOrValue to GetValueOrDefault 08c7dad04cb Merge pull request #46509 from Cosifne/dev/shech/InlineMethod 0c2f60da5d3 Move to a 2-phase attribute binding system, so that calling conventions can be bound correctly. b47ac693221 Fix the test needs loc 547d520ba1e Merge pull request #47426 from dotnet/merges/master-to-master-vs-deps 4fb43f506cd Update errors after merge and fix small bug. 2c71352162f Merge pull request #47425 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps 1684f89608c Clean formatting f8238b67f08 Merge branch 'release/dev16.8' into dev/shech/InlineMethod 9d8f3adaa51 Fix formatting after merge a3431f14504 Add tests f05e3a5f9eb Merge remote-tracking branch 'upstream/master' into unmanaged-callers-only-errors * upstream/master: (87 commits) Use IsDefault for RazorSpan's Enable default mapped span results for Razor. Find explicitly implemented method on base type using CLR comparison (#47251) Remove obsolete generator types (#47389) Move a defense check into a debug check Join in state from parameter default value (#47171) Move PreserveBaseOverridesAttribute to special types. (#46478) Update src/VisualStudio/Core/Def/Implementation/TodoComments/VisualStudioTodoCommentsService.cs Cleanup Add test Make tree retrival optional, it's not required for non-C#/VB languages. Re-run generators when an additional file changes Use location Disable reference conversion during Solution Close operations Add Breaking changes section to SG cookbook (#47336) Fix loops Use the ColorThemeService to get the current ThemeId Comments Update src/Workspaces/Core/Portable/Workspace/Solution/SolutionState.UnrootedSymbolSet.cs Update src/Workspaces/Core/Portable/Workspace/Solution/SolutionState.UnrootedSymbolSet.cs ... 1ee073e837e PR Feedback d602c498ab4 Merge pull request #47343 from CyrusNajmabadi/symToProj 71bdb27f1a6 Merge pull request #47294 from sharwell/codefixes-annotations 414ae795552 Fix merge conflicts 4419b4cfa53 Use IsDefault for RazorSpan's 14bb602cef7 Enable default mapped span results for Razor. ae72fac864f Merge pull request #47402 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps 872a64c0484 Merge pull request #47290 from sharwell/update-codestyle 50e5e4a58aa Extract interface ITemporaryTextStorageWithName 67e722816a9 Use separate synchronization kind for SerializableSourceText 760f4fd258e Find explicitly implemented method on base type using CLR comparison (#47251) 07c9c6a937a Merge pull request #47418 from dotnet/merges/master-to-master-vs-deps 598c13be175 Address feedback 412f9a04398 Merge pull request #47398 from CyrusNajmabadi/nonRequired 3a90930be6d Remove obsolete generator types (#47389) d5dd0ec699f Add test to support inline from field efcddc8e204 Fix GenerateVariableTests too 5009de1f921 Merge pull request #47395 from jasonmalinowski/additional-file-edits-should-rerun-analyzers 7763b6358c9 Move a defense check into a debug check 68319328375 Move helper methods to file CSharpDiagnosticAnalyzerQuickInfoProviderExtensions.cs abf7e8c618b Move erro code from checkId extraction to extension class. 606ba3e8c1d Formating (line break) a95e4b75e79 Add code comment about ExtensionOrder 99f97be5fe0 Remove call of AnalyzeProjectAsync (not needed). f7adbaa0913 Fix VB tests 5118754b0c3 Fix and un-skip pattern matching completion tests e436c864354 Use displayTextSuffix 3266d7df4f0 clean nits f317e4694ac Sort and remove usings 25c3260ed0a Update src/EditorFeatures/CSharpTest/QuickInfo/DiagnosticAnalyzerQuickInfoSourceTests.cs bacdf1085f4 Update eng/Versions.props da50e444321 Correct unit test eebd1f7d0a7 Un-skip test e357c7b3317 Add messages to a flaky assertion ba4b885fc78 Merge pull request #47391 from dotnet/merges/master-to-master-vs-deps 28e0d1eef3c Refactor the code and modify the code 5004ce732d0 Simplify f9fbd9347a7 Extract method e78b37e454b Merge pull request #47403 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 198eaf5e011 Update intellisense command. a9481e4fed1 Join in state from parameter default value (#47171) 9aac43e0cff Move UnmanagedCallersOnly decoding to be an early attribute to reduce cases it needs to be lazily-initialized. 045d179400d Move PreserveBaseOverridesAttribute to special types. (#46478) 931ad6c8ed0 Add more VB tests 9461d1c5bac Update src/VisualStudio/Core/Def/Implementation/TodoComments/VisualStudioTodoCommentsService.cs 2db277c3c5a Export light theme regex classification colors 3a8008c83a6 Merge pull request #47359 from sharwell/faster-close 5ddfee4152a Export light theme color for String - Escape Character 325abe25def Serialize document states without loading text c21183d8dd5 Cleanup d84e7a425e2 Add test b0ec646f3bf Update the versions of SCI and SRM to public preview 8 bb594a44317 Make tree retrival optional, it's not required for non-C#/VB languages. 4fd5951a878 Re-run generators when an additional file changes 080bc477033 Merge pull request #47361 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps 90e570d7636 Merge pull request #47362 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 61ffefdd1fc Use location 4857bab60e0 Temp troubleshooting. 6144e2c6bcf Merge branch 'patch-15' of https://GitHub.com/Youssef1313/Roslyn into patch-15 56907e8c2cb Fix violation introduced in #47094 9e69df24b44 Merge branch 'master' into patch-15 83c073ea261 Update src/Tools/Source/CompilerGeneratorTools/Source/BoundTreeGenerator/BoundNodeClassWriter.cs 5502c248ade Merge pull request #47320 from JoeRobich/remove-colorscheme-migration 4020507e6a2 Merge pull request #47368 from dotnet/merges/master-to-master-vs-deps b020e7904a0 Move to the VS scouting pool. 8522f4cdcff Add CSharp cross documents tests 95e4a421cdd Skip empty initializers e8f51f97b7a Update src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/ParenthesizedExpressionSyntaxExtensions.cs de3c35cbca5 Fix formatting 7ae0897142b PR Feedback: 8f1beba74be Merge remote-tracking branch 'upstream/release/dev16.8-vs-deps' into merges/release/dev16.8-vs-deps-to-master-vs-deps 1ec98b4fada Merge pull request #46991 from Youssef1313/patch-14 6734a379abc Resolve other comments 2e3fe6ae4f4 Use just 16.8 b1bb7ddfe16 Add tests f6dbb9c1333 Brace completion for 'new()' expression 3ebfd8cbb5f Trigger completion in 'new()' expression 64301b86845 Update BoundNodeClassWriter.cs 79756ab8908 Depend on vs 16.8p2 df896aec4e6 Require 16.9 to force build machines to have the latest VS previews. 4093e098b3b Ensure that 16.8p2 is the minimum documented version. 7fb64b2cc57 Update RoslynTools.MSBuild version. 197d6807b81 Move to .NET 5p8. 735d1c7e383 Disable reference conversion during Solution Close operations 4602d5d227f Add Breaking changes section to SG cookbook (#47336) 2b7b1e9a8a4 Merge pull request #47367 from dotnet/merges/release/dev16.8-to-master 90f4a67a3cc Update Versions.props 31599022c75 Update Versions.props b38665873f6 Fix IsSafeToChangeAssociativity for dynamic variables d94125f08a0 Merge pull request #47339 from CyrusNajmabadi/noCrash 386aedbe6bd Merge pull request #47337 from CyrusNajmabadi/noTS 4eca967f780 Merge pull request #47307 from CyrusNajmabadi/farTypeAndConstructor c7ddd7bc5d9 Fix loops b5614b38489 Merge pull request #47349 from ryzngard/issues/46875_rename_pull_to_base_class 33457b20f63 Merge pull request #47354 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 6ea9c66744d Merge pull request #47353 from dotnet/merges/release/dev16.8-to-master c935c1bcb93 refactor the code to let caller find the special cases 930a849647a Merge pull request #47321 from dibarbet/suggestion_completion 41c4234da99 Merge pull request #47012 from 333fred/warn-static-classes 2a67f7a2384 Merge pull request #47213 from retran/featureonoffprovider-should-provide-inlineparameternamehints-option 499512e1374 Use the ColorThemeService to get the current ThemeId cc0279c0780 Comments 08f35d1f022 Update src/Workspaces/Core/Portable/Workspace/Solution/SolutionState.UnrootedSymbolSet.cs 2df64b44234 Merge pull request #47334 from sharwell/fix-annotations e92618f4580 Update src/Workspaces/Core/Portable/Workspace/Solution/SolutionState.UnrootedSymbolSet.cs 283a252e7b7 Fix loops 6b0166d9fd2 Add comment 4948a5e1772 Fixes from PR feedback 2d98f81de39 Rename Pull member(s) up to new base class... to Extract base class... d98894d8304 Fixup nullable annotations d2fbd524e05 Merge pull request #47295 from sharwell/experiments-annotations 4a5a74cdede Add docs ec5218f4882 Add test 66e68d6adae Fix handling of possibly-null return from GetServiceAsync f530730e267 Fix flaky compiler server test. (#47246) 40026e8a5d6 Merge pull request #47312 from JoeRobich/fix-cdata-color 9032212aa8c Fix nullability warning dc908d971fd Merge remote-tracking branch 'origin/master' into remove-colorscheme-migration 88e2c1a99f0 Add docs a57fc5d64a7 Merge pull request #47296 from sharwell/extensionmanager-annotations 30ef26e0b4d Merge pull request #47298 from sharwell/formatting-annotations 2289ff61b42 Merge pull request #47299 from sharwell/indentation-annotations 7252e5df04a Update nullable annotations d3994dd5582 Merge pull request #47301 from sharwell/versions-annotations c04761b5d88 Merge pull request #47302 from sharwell/todocomments-annotations 8e37319b543 Merge pull request #47303 from sharwell/tags-annotations f687e6577a7 Separate out primary symbol lookup versus secondary. 08946dc0074 Map body level symbols to the right project. a62f5b8a966 Use autoprops e88de1c360b Update src/Workspaces/Core/Portable/FindSymbols/SymbolFinder.FindReferencesServerCallback.cs 43bd798fb99 Do not crash later on if we are unable to roundtrip a symbol to OOP. 35b637a8ea8 Only cache semantic classifications for C# and VB. 4341aaf7891 Adjust assertion in AsyncExceptionHandlerRewriter (#47180) aa3f5b265a2 Adjust operators test. 5c2cacb2603 Merge pull request #47293 from sharwell/codecleanup-annotations 0479e79321c Merge pull request #47326 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps 760a4a22afe Merge pull request #47316 from dotnet/merges/master-to-master-vs-deps 67b79f1b325 Add tests for lambdas 42ad57c0182 Merge pull request #47297 from mavasani/RemoveHumanizerFromCodeStyle 3f9c4ada2dd Merge pull request #47244 from CyrusNajmabadi/enableTest 050f3f8614f Merge pull request #47315 from dotnet/dev/allichou/snap-8p3 0b7c260d73d Merge pull request #47314 from dotnet/merges/master-vs-deps-to-release-vs-deps/dev16.8-vs-deps 596509a5361 Merge pull request #47313 from dotnet/merges/master-to-release/dev16.8 f7219d30d19 Enable suggestion mode for LSP completion 1bd5b566e11 Fixed formatting, fixed a bug in the retargeting logic. a2da41e3494 Do not set ColorScheme based on customized classifications cc84ca75894 Merge pull request #47285 from Youssef1313/clarify-error-message a436538c83b Add the test code to support test in differernt files e7585d66354 Update PublishData.json 2239517798c Add missing overrides and fix a codestyle issue. d80f479a42e Update Versions.props 4e5eccf7b89 Update Xml Literal CDATA exported default color to dark grey e2b30f15cec Use the same CDATA color for xml literals as for doc comments 1e393b32f5b Merge pull request #45729 from dibarbet/snippet_ui a49171cb9a7 Add additional indexer test. 8a35c79eab0 Add UnmanagedCallersOnly to the test plan. 5f39f0b4e38 Merge pull request #47300 from dotnet/merges/master-to-master-vs-deps 8d069d3894e Merge remote-tracking branch 'upstream/master' into warn-static-classes * upstream/master: (43 commits) Fix typos (#47264) Disable CS0660 where Full Solution Analysis produces a different result Pass in correct arguments to TypeScript handler Add skipped failing test for IDE0044 (#45288) Avoid first chance exception Code review feedback part 3 Update stale URLs in the readme Update IntegrationTestSourceGenerator.cs Fix comment Update IntegrationTestSourceGenerator.cs Remove unused reference to obsolete class Update nullable annotations in Classification folder Update generator public API names: (#47222) NullableContextAttribute for property parameters is from accessor (#47223) Modify global analyzer config precedence: (#45871) Skip the C# source generator integration test running for now Additional XAML LSP handlers (#47217) Remap diagnostics using IWorkspaceVenusSpanMappingService in-proc Warn on type named "record" (#47094) Bail out early before getting SyntaxTree ... 80eeef73b9a Issue Errors on calls to UnmanagedCallersOnly-attributed methods 254e31d7c71 Address feedback - move GenerateNameForExpression functionality from shared layer up to Workspaces layer d515e7806b5 Merge pull request #45099 from allisonchou/LSPCompletionSupport dc2c9d8b671 Merge pull request #47283 from sharwell/align-fsa 5dc28cdb21e Merge pull request #47284 from sharwell/classification-annotations 1412cac55e3 Upgrade MS.CA.Elfie version 2e62f55d299 Update test 0d53ed82c00 Nullability changes bb544bf312e Do not include constructor references in the named-type section of a FAR result. 73b5cb4a9a5 Add an analyzer reference for Humanizer to avoid analyzer load failures c44a0141e62 Update src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Services/SyntaxFacts/CSharpSyntaxFacts.cs 7753168b761 Feedback 658fbe3a7db Return ReadOnlySpan 726231373b2 Apply suggestions from code review a3de44aac2c Update GetSemanticInfoTests.cs 11fc18ba684 Add test for static constructors 579741e4f98 Update annotations in Versions folder 307c8829be4 Update nullable annotations in TodoComments folder eb816cc26b0 Enhance error message for multiple constructors 58c52c5152e Update nullable annotations in Tags folder 471f61ba780 Update nullable annotations in Indentation folder ac04153da72 Also remove reference from CodeFixes project a9012bf5c58 Update nullable annotations in Formatting folder 89a65dc4b9e Remove Humanizer package reference from CodeStyle layer 1a78981dfd2 Update nullable annotations in ExtensionManager folder 574ca1f4824 Update nullable annotations in Experiments folder 7de83934699 Fix typos (#47264) 48077e21560 Update nullable annotations in CodeFixes folder eb0581d3b8d Merge pull request #47271 from davkean/AvoidFirstChanceException f8b70d24555 Update nullable annotations in CodeCleanup folder 61165d54e53 Update code style layer and compiler for 16.8 Preview 2 86dcb4b4c04 Target typed new() d874cda53fd Disable CS0660 where Full Solution Analysis produces a different result 87ea5c49f80 Fix TaggedTextStyle for links and refactor argument "checkId" condition 7a9aee7711c Apply suggestions from code review 43f11b00c8d Merge pull request #47256 from dotnet/merges/master-to-master-vs-deps 3004ef96609 Avoid CS8634 in CI build. Fix bug in positional argument handling. Add some code comments. 97970e80c98 Merge conflict resolution d5d8f4b2cea Fix merge conflicts 4432f9b1deb Pass in correct arguments to TypeScript handler b3afe69bdf6 Devirtualize TokenMap e7bad77b5cd Add skipped failing test for IDE0044 (#45288) 41ab8344442 Avoid first chance exception a3fecbfe0c7 Merge branch 'master' into FixMakeLocalFunctionStatic 9c6cbe984e4 Merge pull request #47270 from PathogenDavid/stale-link-update 117784105f8 Fix merge conflicts 2239901f429 Code review feedback part 3 31d900cf783 Fix typo 7ba781c1a5d Add link support for errors. bd03f6a7b71 Update stale URLs in the readme 939b4881e03 Move before semantic analyzer to override AttributeArgument quickinfo and fix syntax analysis bug e01d5c42c49 Complete SuppressMessage attribute support. b70a9ac1b76 WIP: Add support for SuppressMessageAttribute arguments 02b90c45eec Removed unused parameters in test a2b5e5da866 Fix tests d12d0efbaa2 Merge pull request #47260 from Youssef1313/patch-25 4b3a3892f18 Update IntegrationTestSourceGenerator.cs 263b2e6f807 Fix comment 1387496f4e4 Update IntegrationTestSourceGenerator.cs 0bd6ad64407 Remove unused reference to obsolete class 8948b7aac82 Update nullable annotations in Classification folder fd0e8520a8c Update generator public API names: (#47222) 3090d91de17 NullableContextAttribute for property parameters is from accessor (#47223) 6eb2a557d2a Merge pull request #47240 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps 4ca51b697dd Merge pull request #46949 from jasonmalinowski/support-go-to-definition-for-generated-code 111e8daefde Merge pull request #47209 from sharwell/declared-symbol 10da73ea205 Merge pull request #47253 from mavasani/RazorIssue c75bc71ad44 Modify global analyzer config precedence: (#45871) 323a1cf5db5 Skip the C# source generator integration test running for now 4634ca08cd0 Merge pull request #47245 from dotnet/merges/master-to-master-vs-deps 57582f2a59a Additional XAML LSP handlers (#47217) e2661c80708 Address feedback 2a5a370a7ac Remap diagnostics using IWorkspaceVenusSpanMappingService in-proc 8dade8dfdc8 Merge branch 'release/dev16.8-vs-deps' of github.com:dotnet/roslyn into merges/release/dev16.8-vs-deps-to-master-vs-deps a8d63c614ee Warn on type named "record" (#47094) 8c55b2b1b25 Address all the other small suggestions 37771f16e4d Enable test 3cb9c517db1 Merge pull request #47085 from PathogenDavid/myget-to-azuredevops c7d7d10a0e9 Merge pull request #47184 from Youssef1313/patch-7 6989144e630 Merge pull request #47229 from Youssef1313/patch-9 d704f09778d Merge pull request #47138 from sharwell/codelens-invalidate cddb50ada90 Use `hostAnalyzers.GetDiagnosticDescriptorsPerReference` to get the diagnostics description. 2e3e714b749 Merge pull request #47199 from dibarbet/remove_extra_capabilities f783cf28814 Merge remote-tracking branch 'upstream/master' into warn-static-classes * upstream/master: (220 commits) Don't load generators that target net framework explicitly. (#47100) Update src/Features/Core/Portable/UnifiedSuggestions/UnifiedSuggestedActionsSource.cs Clean up redundant code action filtering Remove IActiveStatementSpanTracker (#46826) Disable API analysis if telemetry is disabled Update src/Workspaces/Remote/ServiceHub/Services/CodeAnalysis/CodeAnalysisService_SemanticClassificationCache.cs Doc Compress two values. PR feedback Revert Revert Lint Fix formatting Fire and forget Fix mangling Ensure that local functions are also marked as invalid if their containing methods are generic. Fix dependency graph for AnalyzerRunner Add AnalyzerRunner target for net5.0 Make VerifyForwardedTypes asynchronous Fix bug when "End statement" is used in single-line if (#47062) ... f2381a2231e Merge pull request #47232 from dotnet/merges/master-to-master-vs-deps d81642c7ac5 Merge pull request #46840 from sharwell/async-verify 3cec4d0c801 Remove `GetQuickInfoFromDiagnosticAnalyzerAsync` logic 1309e6b088a Merge pull request #47218 from sharwell/handle-optout 589e8e9cbff Apply suggestions from code review 8454bf9b712 Bail out early before getting SyntaxTree 662fec504e8 Merge pull request #47227 from dotnet/merges/master-to-master-vs-deps c133841b59b Suppress false positive 66fda43c19c IDE0044 leftovers 535978d7d96 Update StateMachineRewriter.StateMachineMethodToClassRewriter.vb 2225049b908 Update SyntaxNodeExtensions.vb 725338f8d7c Update InteractiveHost.Service.cs 2503010ea6b Merge pull request #47220 from davidwengier/CleanUpFiltering 2d25c70ab55 Update MockDesktopSpinLock.cs 8c4b3b3f399 Add the support for the simplification when the parameter is referenced only once 1071a06af1e Merge pull request #47202 from dotnet/merges/release/dev16.8-to-master 24d279c313c Merge pull request #47204 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 15b243e5bff Update src/Scripting/CoreTestUtilities/ObjectFormatterFixtures/MockDesktopSpinLock.cs 01474d0181e Merge pull request #46955 from CyrusNajmabadi/merged a1bbd3c522c Add related GitHub issues to suppressions 1c5fae65e3f Merge pull request #47205 from dotnet/merges/master-to-master-vs-deps f1f6b72ef12 Merge pull request #47203 from dotnet/merges/release/dev16.8-vs-deps-to-master-vs-deps f72a248324f Don't load generators that target net framework explicitly. (#47100) f57a1a5087c Update src/Features/Core/Portable/UnifiedSuggestions/UnifiedSuggestedActionsSource.cs e4e77f12e56 Code review feedback part 2 e98d42c80ff Merge pull request #47008 from 333fred/unmanaged-callers-only-errors cb517c6d5cf Clean up redundant code action filtering 755c3b186fb Merge pull request #47192 from sharwell/fix-runner 3cf4118590d Add the support for throw expression & throw statement 73606223427 Remove IActiveStatementSpanTracker (#46826) cf1680bb3e2 Wire up the asynchronous updates of files to a listener 43937538600 Code review feedback 79666cba030 Disable API analysis if telemetry is disabled f3ea6a2f793 Merge pull request #46987 from Youssef1313/patch-9 36b6b7bb118 add FeatureOnOffOptions.InlineParameterNameHints to FeatureOnOffOptionsProvider 2a56f97f8ed Merge pull request #47168 from dotnet/merges/release/dev16.7-vs-deps-to-release/dev16.8-vs-deps 31ebe4954e5 Merge pull request #47113 from Youssef1313/patch-22 1e66ce65303 Update nullable annotations for SemanticModel dc06f8a0035 Update src/Workspaces/Remote/ServiceHub/Services/CodeAnalysis/CodeAnalysisService_SemanticClassificationCache.cs bb855696a29 Doc cf0a8f6b722 Add an integration test for source generator go to definition support e7d7a542d56 Enable go to definition for source generated files da2aabf83c6 Extract a common use of AsyncBatchingWorkQueue into AsyncBatchingDelay f75cf245630 Merge remote-tracking branch 'upstream/master' into asyncNuget2 c67aeebfcb3 Compress two values. c05da519a5b Remove unnecessary initialize request to liveshare server from liveshare client 5310f4b4f11 PR feedback 876b1891238 Change the await scenario 119c1b6f260 Add design comment for PollForUpdatesAsync b1ee64f2af5 Merge pull request #47177 from dotnet/merges/release/dev16.8-to-master 9e1f351a234 Revert 8da422750af Revert c5b2bd0410a Lint ee9314e5d3c CA1802: readonly -> const d9ae8801c13 CA1802: readonly -> const 4070dbb7ece Fix formatting 4a0f31f77b3 Merge pull request #47178 from dotnet/merges/release/dev16.8-to-release/dev16.8-vs-deps 6ce1f81a476 Fire and forget a25ef2d6349 Merge remote-tracking branch 'upstream/master' into unmanaged-callers-only-errors * upstream/master: (236 commits) Fix bug when "End statement" is used in single-line if (#47062) Solution asset cache refactoring (#46948) add specific tests to validate behavior between keys and snapshots Extract into separate files rename parameters rename parameters rename parameters rename parameters Add CancellationToken parameters to SyntaxTreeOptionsProvider Reuse nullable override checks for delegate conversions (#46953) Introduce warning for multiple entry points (sync + async) (#46832) Switch from throwing NotImplementedException and return E_NOTIMPL Delete Building for Core CLR.md (#47146) Adjust PrintMembers to avoid boxing and avoid extra space (#47095) Track asynchronous operation in InProcLanguageServer Use Task.FromCanceled where appropriate Apply suggestions from code review Address feedback Expose ParseOptions on generator context (#46919) Remove redundant statement in added tests ... c7565aedb77 Fix mangling 6d578ab26c0 Merge remote-tracking branch 'upstream/master' into merged a967111bfba Keep IDE0040 for a follow-up PR 1aeda2e94fb Merge pull request #47096 from CyrusNajmabadi/nonSnapshotPersistence 256551a3979 Resolve merge conflict 4fed894a391 More IDE0044 db2e18ef885 Ensure that local functions are also marked as invalid if their containing methods are generic. da34ec8b941 Fix IDE0036 9866fe4a68c Fix dependency graph for AnalyzerRunner 490d383b016 Add AnalyzerRunner target for net5.0 d9643cb540a Make VerifyForwardedTypes asynchronous c55795ebe9c IDE0036 - VB 28cadbbf37e Merge pull request #47179 from dotnet/merges/master-to-master-vs-deps bf8d21e6e26 Fix AzDO test failure 6cda86c5689 http => https 6ff9a54d30e Fix up tests + cleanup a2faf3882a6 Merge pull request #47176 from dotnet/merges/release/dev16.7-to-release/dev16.8 e874d4a055f Always add type cast and parenthesis when inlining expression 83cd36ea29c Recursively check ConditionalAccessExpressionSyntax when checking NullConditionalInvocationExpression 0b616ed5110 Modify the test code to let most of the tests also covering the removal action 4e0ac646bfa Fix bug when "End statement" is used in single-line if (#47062) 0b0caabd3e5 Merge pull request #47170 from dotnet/merges/master-to-master-vs-deps cb3c662dddc Merge pull request #47021 from jasonmalinowski/add-cancellationtokens-to-syntaxtreeoptionsprovider d136fce6bf3 Merge pull request #47161 from dotnet/merges/release/dev16.7-to-release/dev16.8 59b6a03559a Solution asset cache refactoring (#46948) a52e4abcbcc Pass along the IVsWindowFrame when a file is open, if it's known 8c800b299b6 Thread through a small API to get the GeneratorDriverRunResult 18ede13943b Merge pull request #47169 from dotnet/merges/release/dev16.7-to-release/dev16.7-vs-deps f8b96543550 add specific tests to validate behavior between keys and snapshots 921906282af Extract into separate files 0a30c517b3c rename parameters 06fba384569 rename parameters 0742b7451bd rename parameters 53badd0d818 rename parameters 44383882777 Merge remote-tracking branch 'upstream/master' into nonSnapshotPersistence 737e69086d8 Merge pull request #47159 from jasonmalinowski/tweak-notimplementedexception 7b3d906c460 Fix crash when lowering decision dag (#47127) 2d4b9c90c72 Fix merge conflicts 255cb1e0543 Merge pull request #47116 from sharwell/track-work 4d35a10bdc5 Merge pull request #47162 from dotnet/merges/release/dev16.7-to-release/dev16.7-vs-deps 860e3edd958 Add CancellationToken parameters to SyntaxTreeOptionsProvider 324db5aec2f Merge pull request #47157 from dotnet/merges/master-to-master-vs-deps 39ab15ecf30 Consolidate generic error codes. 14731c81f60 Reuse nullable override checks for delegate conversions (#46953) 851ecc5737e Merge pull request #47124 from sharwell/update-attributes 601cd9a59a4 Introduce warning for multiple entry points (sync + async) (#46832) 52d574681f1 IDE0044 - FixAll 301486c0a70 Merge pull request #47131 from sharwell/from-canceled 434907924d2 IDE0036 - FixAll 45aba613e4a Merge branch 'merged' of https://github.com/CyrusNajmabadi/roslyn into merged c5d11f60287 Merge pull request #47025 from jcouv/port-switch bc98401bf77 Switch from throwing NotImplementedException and return E_NOTIMPL 78b1775b381 Merge pull request #47150 from mavasani/DoNotReuseCanceledCompWithAnalyzers 8f7b8b67d8b Update EditAndContinueMethodDebugInformation.cs 16cf19f89e3 Update SymUnmanagedWriterImpl.cs 8a8a2a38ccc IDE0036 73ec949930b IDE0036 f524299f665 IDE0036 86c7195a113 IDE0036 71231edfe9c Delete Building for Core CLR.md (#47146) 7739bb5f7f7 Delete c7c8f28b964 Merge pull request #47141 from shyamnamboodiripad/analyzerregistration 096dcf8d2f0 Update src/Workspaces/Core/Portable/Remote/WellKnownServiceHubService.cs 9c4881ff15b Merge branch 'merged' of https://github.com/CyrusNajmabadi/roslyn into merged 81aa94dae97 Cleanup 7f872f235cb Update src/VisualStudio/Core/Def/Implementation/SemanticClassificationCache/VisualStudioSemanticClassificationCacheService.cs 0cc749a8dac Add assert 27e0938d4ed Update src/VisualStudio/Core/Def/Implementation/SemanticClassificationCache/SemanticClassificationCach…
@tmat you did all this right? is there anything remaining here? |
Yup. Done. |
Services should be resilient to unexpected exceptions and unexpected exceptions coming from IPC should not be any different than unexpected exceptions coming from other code. Services should handle them and recover where possible.
The client should indicate failure in the UI. The UI should indicate if the error is likely to be persistent or intermittent. An example of a persistent error is failure to calculate the result on the server due to a bug (unexpected exception) in the feature implementation. Attempting to recalculate with the same inputs will produce the same error again. The server may cache this failure. An intermittent error would be e.g. a network error. Results produced in presence of these errors should not be cached. The user may try to invoke the feature again if the error seems intermittent. The server may still produce a partial result with an indication of an error.
Currently unexpected exceptions thrown on the server side propagate to the client side, where a SoftCrashException is thrown (pretending the error is a cancellation), an info-bar is displayed suggesting the user to restart VS due to possible corruption.
Proposal
Implement a workspace service that provides a shutdown cancellation token. In VS this would be the disposal token of a Roslyn package.
We will require that remote calls do not throw expected (“by design”) exceptions. Expected failures (e.g. can’t find a symbol, etc.) need to be returned as a regular result of the service (e.g. a diagnostic, error code, success bool, etc.).
There are essentially 3 kinds of “unexpected” remote invocation failures (i.e. the call does not return a value). In all these cases the
RemoteHostClient.TryRunRemote
will return false (ordefault(Optional<T>)
):IO/network error
This shouldn't happen right now (or very rarely) since we are using named pipes on the same machine. In future the service might be on a different machine. A gold bar will be displayed by
RemoteHostClient.TryRunRemote
: “Feature xyz is currently unavailable due to network issues”.We need to change our FatalError filters to let network exceptions (IOExceptions in general?) thru without reporting NFW since they are not unexpected exceptions anymore.
Unexpected exception thrown by the service implementation due to a bug.
The service itself may recover from the exception. It should report NFW and make sure the error is reported to the user in some way. E.g. a diagnostic is included in the result of the service and then surfaced on the client. The service may also cache the error if it’d hit it again next time it’s invoked with the same arguments. If an unexpected exception leaks from a service implementation all the way to the server side of the remote call, the NFW is reported there and the exception is propagated to the client (already implemented in ServiceBase.RunServiceAsync). This failure surfaces on the client side as RemoteInvocationException. The remote invocation will catch this exception. A gold bar will be displayed by
RemoteHostClient.TryRunRemote
: “Feature xyz is currently unavailable due to an internal error [Details]”.Shutdown cancellation.
Ideally all entry points to all our features use the shutdown cancellation token or a token that’s linked with it. If a feature did not link shutdown cancellation token into its token the RPC invocation might throw ObjectDisposedException as it gets disposed when disconnected. TryRunRemote will catch this exception and check if the shutdown cancellation token is signaled. If it is it will not display any gold bar and just return false. If shutdown has not started then gold bar is displayed “Feature xyz is currently unavailable” (this may happen when our ServiceHub process is terminated for some reason – e.g. stack overflow, or the process is killed). In future we might automatically restart the ServiceHub process.
This assumes that each caller of a remote service can recover from a failure (indicated by TryRunRemote returning false) at the point it makes the remote call by doing “nothing”. For example, returning empty results of find references, etc. If, for some reason, it can't recover then it can throw some custom exception (or propagate the failure in some other way) to unwind to a frame where it can recover.
Remote callbacks
A callback implementation should report NFW on unexpected exceptions and propagate them. Reporting NFW captures state of the client at the time of the failure. Propagation of the exception results in RemoteInvocationException thrown on the server side (that invoked the callback mehtod). The service implementation reports NFW in ServiceBase.RunServiceAsync or in an earlier filter because RemoteInvocationException is unexpected. It propagates the exception back to the client where gold bar is displayed (scenario #2 above). The gold bar reporting needs to handle nested RemoteInvocationExceptions.
Serialization issues that occur during callback invocation will manifest as any other unexpected exception on the server side and get reported by NFW filters.
When a client drops connection during callback invocation the service should cancel the work on the request since the client has disconnected. NFW should not be reported for these issues. The assumption is that the connection is also dropped in the opposite direction (from client to the service), so there is no way (and no point) to tell the client about the issue.
The text was updated successfully, but these errors were encountered: