Skip to content

Commit b4ef994

Browse files
nojafdsyme
andauthored
Print attributes of nested modules in signatures. (#13890)
Co-authored-by: Don Syme <[email protected]>
1 parent 5c3f987 commit b4ef994

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/Compiler/Checking/NicePrint.fs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2404,7 +2404,9 @@ module InferredSigPrinting =
24042404
let nmL = layoutAccessibility denv mspec.Accessibility nmL
24052405
let denv = denv.AddAccessibility mspec.Accessibility
24062406
let basic = imdefL denv def
2407-
let modNameL = wordL (tagKeyword "module") ^^ nmL
2407+
let modNameL =
2408+
wordL (tagKeyword "module") ^^ nmL
2409+
|> layoutAttribs denv None false mspec.TypeOrMeasureKind mspec.Attribs
24082410
let modNameEqualsL = modNameL ^^ WordL.equals
24092411
let isNamespace = function | Namespace _ -> true | _ -> false
24102412
let modIsOuter = (outerPath |> List.forall (fun (_, istype) -> isNamespace istype) )

tests/FSharp.Compiler.ComponentTests/Signatures/ModuleOrNamespaceTests.fs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,25 @@ do ()
197197
"""
198198
|> printSignatures
199199
|> should equal "namespace Foobar"
200+
201+
[<Fact>]
202+
let ``Attribute on nested module`` () =
203+
FSharp
204+
"""
205+
namespace MyApp.Types
206+
207+
[<RequireQualifiedAccess>]
208+
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
209+
module Area =
210+
type Meh = class end
211+
"""
212+
|> printSignatures
213+
|> prependNewline
214+
|> should equal """
215+
namespace MyApp.Types
216+
217+
[<RequireQualifiedAccess; CompilationRepresentation (enum<CompilationRepresentationFlags> (4))>]
218+
module Area =
219+
220+
type Meh =
221+
class end"""

0 commit comments

Comments
 (0)