A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/dotnet/fsharp/issues/11980 below:

Consider adding debug points for boolean logic · Issue #11980 · dotnet/fsharp · GitHub

Complex boolean logic is quite common in F#, e.g. see examples below. It is really hard to debug.

I propose we add debug points on left and right of a && b and a || b so you can step through this logic and hit breakpoints.

C# doesn't allow breaking in boolean logic or any expression. However

  1. F# already steps through any match and if ... then .. else expressions so adding this seems natural enough.
  2. I believe complex boolean logic is more common in F# than C# because of the expression-oriented nature of the language

A possible downside is that of "too much stepping" so it takes too long to step through a function. However I've been frustrated by the lack of debugging for boolean logic enough that I think we should prefer the addditional debug points.

Examples

let isRecdOrStructTyconRefAssumedImmutable (g: TcGlobals) (tcref: TyconRef) =
    tcref.CanDeref &&
    not (isRecdOrUnionOrStructTyconRefDefinitelyMutable tcref) ||
    tyconRefEq g tcref g.decimal_tcr ||
    tyconRefEq g tcref g.date_tcr

or

zanaptak, En3Tho and vzarytovskii


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4