@@ -3384,14 +3384,14 @@ let ComputeQualifiedNameOfFileFromUniquePath (m, p: string list) = QualifiedName
33843384
33853385let QualFileNameOfSpecs filename specs =
33863386match specswith
3387- | [ SynModuleOrNamespaceSig( modname, _, true , _, _, _, _, m)] -> QualFileNameOfModuleName m filename modname
3388- | [ SynModuleOrNamespaceSig(_, _, false , _, _, _, _, m)] -> QualFileNameOfFilename m filename
3387+ | [ SynModuleOrNamespaceSig( modname, _, kind , _, _, _, _, m)] when kind.IsModule -> QualFileNameOfModuleName m filename modname
3388+ | [ SynModuleOrNamespaceSig(_, _, kind , _, _, _, _, m)] when not kind.IsModule -> QualFileNameOfFilename m filename
33893389| _ -> QualFileNameOfFilename( mkRange filename pos0 pos0) filename
33903390
33913391let QualFileNameOfImpls filename specs =
33923392match specswith
3393- | [ SynModuleOrNamespace( modname, _, true , _, _, _, _, m)] -> QualFileNameOfModuleName m filename modname
3394- | [ SynModuleOrNamespace(_, _, false , _, _, _, _, m)] -> QualFileNameOfFilename m filename
3393+ | [ SynModuleOrNamespace( modname, _, kind , _, _, _, _, m)] when kind.IsModule -> QualFileNameOfModuleName m filename modname
3394+ | [ SynModuleOrNamespace(_, _, kind , _, _, _, _, m)] when not kind.IsModule -> QualFileNameOfFilename m filename
33953395| _ -> QualFileNameOfFilename( mkRange filename pos0 pos0) filename
33963396
33973397let PrepandPathToQualFileName x ( QualifiedNameOfFile ( q )) = ComputeQualifiedNameOfFileFromUniquePath( q.idRange, pathOfLid x@[ q.idText])
@@ -3420,13 +3420,14 @@ let ComputeAnonModuleName check defaultNamespace filename (m: range) =
34203420
34213421let PostParseModuleImpl ( _i , defaultNamespace , isLastCompiland , filename , impl ) =
34223422match implwith
3423- | ParsedImplFileFragment.NamedModule( SynModuleOrNamespace( lid, isRec, isModule , decls, xmlDoc, attribs, access, m)) ->
3423+ | ParsedImplFileFragment.NamedModule( SynModuleOrNamespace( lid, isRec, kind , decls, xmlDoc, attribs, access, m)) ->
34243424let lid =
34253425match lidwith
3426- | [ id] when isModule&& id.idText= MangledGlobalName-> error( Error( FSComp.SR.buildInvalidModuleOrNamespaceName(), id.idRange))
3426+ | [ id] when kind.IsModule&& id.idText= MangledGlobalName->
3427+ error( Error( FSComp.SR.buildInvalidModuleOrNamespaceName(), id.idRange))
34273428| id:: restwhen id.idText= MangledGlobalName-> rest
34283429| _ -> lid
3429- SynModuleOrNamespace( lid, isRec, isModule , decls, xmlDoc, attribs, access, m)
3430+ SynModuleOrNamespace( lid, isRec, kind , decls, xmlDoc, attribs, access, m)
34303431
34313432| ParsedImplFileFragment.AnonModule( defs, m) ->
34323433let isLast , isExe = isLastCompiland
@@ -3437,24 +3438,26 @@ let PostParseModuleImpl (_i, defaultNamespace, isLastCompiland, filename, impl)
34373438| _ -> errorR( Error( FSComp.SR.buildMultiFileRequiresNamespaceOrModule(), trimRangeToLine m))
34383439
34393440let modname = ComputeAnonModuleName( not ( isNil defs)) defaultNamespace filename( trimRangeToLine m)
3440- SynModuleOrNamespace( modname, false , true , defs, PreXmlDoc.Empty, [], None, m)
3441+ SynModuleOrNamespace( modname, false , AnonModule , defs, PreXmlDoc.Empty, [], None, m)
34413442
3442- | ParsedImplFileFragment.NamespaceFragment( lid, a, b , c, d, e, m) ->
3443- let lid =
3443+ | ParsedImplFileFragment.NamespaceFragment( lid, a, kind , c, d, e, m) ->
3444+ let lid , kind =
34443445match lidwith
3445- | id:: restwhen id.idText= MangledGlobalName-> rest
3446- | _ -> lid
3447- SynModuleOrNamespace( lid, a, b, c, d, e, None, m)
3446+ | id:: restwhen id.idText= MangledGlobalName->
3447+ rest, if List.isEmpty restthen GlobalNamespaceelse kind
3448+ | _ -> lid, kind
3449+ SynModuleOrNamespace( lid, a, kind, c, d, e, None, m)
34483450
34493451let PostParseModuleSpec ( _i , defaultNamespace , isLastCompiland , filename , intf ) =
34503452match intfwith
3451- | ParsedSigFileFragment.NamedModule( SynModuleOrNamespaceSig( lid, isRec, isModule , decls, xmlDoc, attribs, access, m)) ->
3453+ | ParsedSigFileFragment.NamedModule( SynModuleOrNamespaceSig( lid, isRec, kind , decls, xmlDoc, attribs, access, m)) ->
34523454let lid =
34533455match lidwith
3454- | [ id] when isModule&& id.idText= MangledGlobalName-> error( Error( FSComp.SR.buildInvalidModuleOrNamespaceName(), id.idRange))
3456+ | [ id] when kind.IsModule&& id.idText= MangledGlobalName->
3457+ error( Error( FSComp.SR.buildInvalidModuleOrNamespaceName(), id.idRange))
34553458| id:: restwhen id.idText= MangledGlobalName-> rest
34563459| _ -> lid
3457- SynModuleOrNamespaceSig( lid, isRec, isModule , decls, xmlDoc, attribs, access, m)
3460+ SynModuleOrNamespaceSig( lid, isRec, NamedModule , decls, xmlDoc, attribs, access, m)
34583461
34593462| ParsedSigFileFragment.AnonModule( defs, m) ->
34603463let isLast , isExe = isLastCompiland
@@ -3465,14 +3468,15 @@ let PostParseModuleSpec (_i, defaultNamespace, isLastCompiland, filename, intf)
34653468| _ -> errorR( Error( FSComp.SR.buildMultiFileRequiresNamespaceOrModule(), m))
34663469
34673470let modname = ComputeAnonModuleName( not ( isNil defs)) defaultNamespace filename( trimRangeToLine m)
3468- SynModuleOrNamespaceSig( modname, false , true , defs, PreXmlDoc.Empty, [], None, m)
3471+ SynModuleOrNamespaceSig( modname, false , AnonModule , defs, PreXmlDoc.Empty, [], None, m)
34693472
3470- | ParsedSigFileFragment.NamespaceFragment( lid, a, b , c, d, e, m) ->
3471- let lid =
3473+ | ParsedSigFileFragment.NamespaceFragment( lid, a, kind , c, d, e, m) ->
3474+ let lid , kind =
34723475match lidwith
3473- | id:: restwhen id.idText= MangledGlobalName-> rest
3474- | _ -> lid
3475- SynModuleOrNamespaceSig( lid, a, b, c, d, e, None, m)
3476+ | id:: restwhen id.idText= MangledGlobalName->
3477+ rest, if List.isEmpty restthen GlobalNamespaceelse kind
3478+ | _ -> lid, kind
3479+ SynModuleOrNamespaceSig( lid, a, kind, c, d, e, None, m)
34763480
34773481
34783482