Skip to content
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

Swallows comment before #nowarn directive #1220

Closed
2 tasks
knocte opened this issue Nov 6, 2020 · 2 comments
Closed
2 tasks

Swallows comment before #nowarn directive #1220

knocte opened this issue Nov 6, 2020 · 2 comments

Comments

@knocte
Copy link
Contributor

knocte commented Nov 6, 2020

Issue created from fantomas-online

Code

// we use this nowarn because blah blah blah
#nowarn "44"

namespace Foo

module Bar =
    let Baz () =
        ()

Result

#nowarn "44"

namespace Foo

module Bar =
    let Baz () = ()

Problem description

It should never swallow comments.

Extra information

  • The formatted result breaks by code.
  • The formatted result gives compiler warnings.
  • [maybe] I or my company would be willing to help fix this.

Options

Fantomas Master at 11/02/2020 11:33:23 - f7b8f3a

Default Fantomas configuration

@nojaf
Copy link
Contributor

nojaf commented Nov 6, 2020

Hey @knocte, I think this issue could be straight forward at first glance.

The comment is attached to:
image

See online tool.

And I think a genTrivia call is missing in CodePrinter.

knocte added a commit to nblockchain/geewallet that referenced this issue Nov 10, 2020
knocte added a commit to nblockchain/geewallet that referenced this issue Nov 10, 2020
knocte added a commit to nblockchain/geewallet that referenced this issue Nov 10, 2020
@knocte
Copy link
Contributor Author

knocte commented Jan 13, 2021

Fixed in 6c32583

@knocte knocte closed this as completed Jan 13, 2021
knocte added a commit to nblockchain/geewallet that referenced this issue Jan 24, 2021
NEW OBSERVATIONS:

this is still vanity alignment:
-                .ComposeInputDataForTransferTransaction(origin, destination, amountInWei, gasLimit)
+                .ComposeInputDataForTransferTransaction(origin,
+                                                        destination,
+                                                        amountInWei,
+                                                        gasLimit)

this still causes indent warnings:

"/Users/knocte/Documents/Code/geewalletMASTERfantomas/gwallet.sln" (default target) (1) ->
"/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj" (default target) (2) ->
(CoreCompile target) ->
  /Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/Ether/EtherServer.fs(283,25): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (282:25). Try indenting this token further or using standard formatting conventions. [/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj]
  /Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/Ether/EtherServer.fs(283,25): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (282:25). Try indenting this token further or using standard formatting conventions. [/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj]
  /Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/Ether/EtherServer.fs(287,28): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (286:28). Try indenting this token further or using standard formatting conventions. [/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj]
  /Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/Ether/EtherServer.fs(287,28): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (286:28). Try indenting this token further or using standard formatting conventions. [/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj]
  /Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/Ether/EtherServer.fs(291,28): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (290:28). Try indenting this token further or using standard formatting conventions. [/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj]
  /Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/Ether/EtherServer.fs(291,28): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (290:28). Try indenting this token further or using standard formatting conventions. [/Users/knocte/Documents/Code/geewalletMASTERfantomas/src/GWallet.Backend/GWallet.Backend.fsproj]

    6 Warning(s)
    0 Error(s)

REVIEW MERGED commit messages from prev history:

Update fantomas to 4.3.0-alpha-002-alpha-043

    dotnet tool install -g fantomas-tool --add-source https://www.myget.org/F/fantomas/api/v3/index.json --framework netcoreapp3.1 --version 4.3.0-alpha-002-alpha-043

    New bugs:
    fsprojects/fantomas#1223
    fsprojects/fantomas#1226
    fsprojects/fantomas#1220
    fsprojects/fantomas#1219
    fsprojects/fantomas#1222

    Fix .editorconfig file

    Things to report:
    - this is ugly:

    -                monoRuntime.GetMethod ("GetDisplayName", BindingFlags.NonPublic ||| BindingFlags.Static)
    +                monoRuntime.GetMethod
    +                    ("GetDisplayName",
    +                     BindingFlags.NonPublic ||| BindingFlags.Static)

    - this cut is bad because it seems to place it at the same offset:
             match electrumServer.ServerInfo.ConnectionType with
             | { Encrypted = true
    -            Protocol = _ } -> failwith "Incompatibility filter for non-encryption didn't work?"
    +            Protocol = _ } ->
    +            failwith "Incompatibility filter for non-encryption didn't work?"

    - this should make it end with |> Some:
             let consistencyConfig =
                 if mode = ServerSelectionMode.Fast then
    -                Some (OneServerConsistentWithCertainValueOrTwoServers cacheOrInitialBalanceMatchFunc)
    +                Some
    +                    (OneServerConsistentWithCertainValueOrTwoServers
    +                        cacheOrInitialBalanceMatchFunc)

    New setting in 4.3.0-beta-001

    This version is installed this way:
    dotnet tool install -g fantomas-tool --framework net5.0 --version 4.3.0-beta-001

    But can't run it yet myself.

    new setting in 4.3.0-alpha-005

    see fsprojects/fantomas@83ac83b

    Update fantomas to v4.4.0-alpha-008

    Things I don't like:
    1) are we sure it cannot be in a single line?:
             member __.GetLastCachedData (): CachedNetworkData =
                 lock
                     cacheFiles.CachedNetworkData
    -                (fun _ -> sessionCachedNetworkData)
    +                (fun _ -> sessionCachedNetworkData
    +                )

    2) are we sure it cannot be in a single line?:
                raise
                    (TlsNotSupportedYetInGWalletException ("TLS not yet supported"))
                raise (
                    TlsNotSupportedYetInGWalletException ("TLS not yet supported")
                )

    Things I should report (if not reported yet):
    1)
    Processing src/GWallet.Backend/Ether/EtherServer.fs
    The following exception occurs while formatting stdin: Fantomas.FormatConfig+FormatException: Formatted content is not valid F# code
       at Fantomas.Extras.FakeHelpers.formatContentInternalAsync@95-5.Invoke(Boolean _arg2) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.Extras\FakeHelpers.fs:line 96
       at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation`1 ctxt, FSharpFunc`2 userCode, b result1) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 404
       at [email protected](AsyncActivation`1 ctxt) in C:\Users\nojaf\Projects\fantomas\src\Fantomas\CodeFormatterImpl.fs:line 378
       at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 104
    --- End of stack trace from previous location ---
       at Microsoft.FSharp.Control.AsyncResult`1.Commit() in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 337
       at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronouslyInCurrentThread[a](CancellationToken cancellationToken, FSharpAsync`1 computation) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 870
       at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 878
       at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 1142
       at Program.processSourceString(Boolean isFsiFile, String s, FSharpChoice`2 tw, FormatConfig config) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.CoreGlobalTool\Program.fs:line 113
       at Program.stringToFile@310(Boolean force, Boolean profile, String s, String outFile, FormatConfig config) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.CoreGlobalTool\Program.fs:line 322

    2)
    Processing src/GWallet.Backend/FaultTolerantParallelClient.fs
    The following exception occurs while formatting stdin: Fantomas.FormatConfig+FormatException: Formatted content is not valid F# code
       at Fantomas.Extras.FakeHelpers.formatContentInternalAsync@95-5.Invoke(Boolean _arg2) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.Extras\FakeHelpers.fs:line 96
       at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation`1 ctxt, FSharpFunc`2 userCode, b result1) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 404
       at [email protected](AsyncActivation`1 ctxt) in C:\Users\nojaf\Projects\fantomas\src\Fantomas\CodeFormatterImpl.fs:line 378
       at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 104
    --- End of stack trace from previous location ---
       at Microsoft.FSharp.Control.AsyncResult`1.Commit() in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 337
       at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronouslyInCurrentThread[a](CancellationToken cancellationToken, FSharpAsync`1 computation) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 870
       at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 878
       at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 1142
       at Program.processSourceString(Boolean isFsiFile, String s, FSharpChoice`2 tw, FormatConfig config) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.CoreGlobalTool\Program.fs:line 113
       at Program.stringToFile@310(Boolean force, Boolean profile, String s, String outFile, FormatConfig config) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.CoreGlobalTool\Program.fs:line 322

    NOTE: one of these two above may be fsprojects/fantomas#1241

    3)
    D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(639,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(639,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(640,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(640,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Ether\EtherAccount.fs(582,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (581:13). Try indenting this token further or using stan       at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 104
    --- End of stack trace from previous location ---
       at Microsoft.FSharp.Control.AsyncResult`1.Commit() in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 337
       at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronouslyInCurrentThread[a](CancellationToken cancellationToken, FSharpAsync`1 computation) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 870
       at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken cancellationToken, FSharpAsync`1 computation, FSharpOption`1 timeout) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 878
       at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync`1 computation, FSharpOption`1 timeout, FSharpOption`1 cancellationToken) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\async.fs:line 1142
       at Program.processSourceString(Boolean isFsiFile, String s, FSharpChoice`2 tw, FormatConfig config) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.CoreGlobalTool\Program.fs:line 113
       at Program.stringToFile@310(Boolean force, Boolean profile, String s, String outFile, FormatConfig config) in C:\Users\nojaf\Projects\fantomas\src\Fantomas.CoreGlobalTool\Program.fs:line 322

    NOTE: one of these two above may be fsprojects/fantomas#1241

    3)
    D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(639,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or using
standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(639,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or usin
g standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(640,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or usin
g standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\UtxoCoin\UtxoCoinAccount.fs(640,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (638:13). Try indenting this token further or usin
g standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Ether\EtherAccount.fs(582,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (581:13). Try indenting this token further or using stan
dard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Ether\EtherAccount.fs(582,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (581:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Ether\EtherAccount.fs(583,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (581:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Ether\EtherAccount.fs(583,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (581:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe build failed
      D:\a\geewallet\geewallet\src\GWallet.Backend\Account.fs(489,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (488:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Account.fs(489,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (488:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Account.fs(490,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (488:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
      D:\a\geewallet\geewallet\src\GWallet.Backend\Account.fs(490,13): error FS0058: Possible incorrect indentation: this token is offside of context started at position (488:13). Try indenting this token further or using standard formatting conventions. [D:\a\geewallet\geewallet\src\GWallet.Backend\GWallet.Backend.fsproj]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants