Skip to content

Commit 9954ee9

Browse files
authored
Merge pull request #10756 from dsyme/api
FCS API internalizations and renamings
2 parents cee7bb4 + ad488d7 commit 9954ee9

File tree

178 files changed

+5009
-22007
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+5009
-22007
lines changed

docs/fcs/interactive.fsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ Catching errors
115115
``EvalExpression``, ``EvalInteraction`` and ``EvalScript`` are awkward if the
116116
code has type checking warnings or errors, or if evaluation fails with an exception.
117117
In these cases you can use ``EvalExpressionNonThrowing``, ``EvalInteractionNonThrowing``
118-
and ``EvalScriptNonThrowing``. These return a tuple of a result and an array of ``FSharpErrorInfo`` values.
118+
and ``EvalScriptNonThrowing``. These return a tuple of a result and an array of ``FSharpDiagnostic`` values.
119119
These represent the errors and warnings. The result part is a ``Choice<_,_>`` between an actual
120120
result and an exception.
121121

docs/fcs/ja/interactive.fsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ fsiSession.EvalScript "sample.fsx"
127127
`EvalExpression` 、 `EvalInteraction` そして `EvalScript` ではあまりうまく処理されません。
128128
これらのケースでは、 `EvalExpressionNonThrowing` 、 `EvalInteractionNonThrowing`
129129
そして `EvalScriptNonThrowing` を使うことが出来ます。
130-
これらは結果と `FSharpErrorInfo` 値の配列の組を返します。
130+
これらは結果と `FSharpDiagnostic` 値の配列の組を返します。
131131
これらはエラーと警告を表します。結果の部分は実際の結果と例外のいずれかを表す
132132
`Choice<_,_>` です。
133133

release-notes.md

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,42 @@ This release covers three important milestones: F# 5, Visual Studio 16.8, and .N
6666
* Compiler message improvements (especially for overload resolution) by [Gauthier Segay](https://github.com/smoothdeveloper), [Vladimir Shchur](https://github.com/Lanayx), and Microsoft
6767

6868
### FSharp Compiler Service 39.0.0
69-
* Add ConvertToAnonymousRecord quick fixeroony [#10493](https://github.com/dotnet/fsharp/pull/10493)
69+
* Renamings
70+
* FSharp.Compiler.AbstractIL.Internal.Library.IFileSystem -> FSharp.Compiler.SourceCodeServices.IFileSystem
71+
* FSharp.Compiler.AbstractIL.Internal.Library.Shim -> FSharp.Compiler.SourceCodeServices.FileSystemAutoOpens
72+
* FSharp.Compiler.AbstractIL.Internal.Layout -> FSharp.Compiler.TextLayout.Layout
73+
* FSharp.Compiler.AbstractIL.Internal.TaggedText -> FSharp.Compiler.TextLayout.TaggedText
74+
* type FSharp.Compiler.Layout.layout -> FSharp.Compiler.TextLayout.Layout
75+
* type FSharp.Compiler.Layout.Layout -> FSharp.Compiler.TextLayout.Layout
76+
* module FSharp.Compiler.Layout -> FSharp.Compiler.TextLayout.LayoutRender
77+
* FSharp.Compiler.LayoutOps -> FSharp.Compiler.TextLayout.Layout
78+
* FSharp.Compiler.Layout.TaggedText -> FSharp.Compiler.TextLayout.TaggedText
79+
* FSharp.Compiler.Layout.TaggedTextOps -> FSharp.Compiler.TextLayout.TaggedText
80+
* FSharp.Compiler.Layout.TaggedTextOps.Literals -> FSharp.Compiler.TextLayout.TaggedText
81+
*
82+
* Renamings in FSharp.Compiler.SourceCodeServices
83+
* Lexer.* --> FSharp.Compiler.SourceCodeServices.*
84+
* FSharpSyntaxToken* --> FSharpToken*
85+
* FSharpErrorInfo --> FSharpDiagnostic
86+
* FSharpErrorSeverity --> FSharpDiagnosticSeverity
87+
* ExternalSymbol --> FSharpExternalSymbol
88+
* UnresolvedSymbol --> FSharpUnresolvedSymbol
89+
* CompletionKind --> FSharpCompletionKind
90+
* module Keywords --> FSharpKeywords
91+
* module Tooltips --> FSharpTooltip
92+
*
93+
* Extension methods in `ServiceAssemblyContent.fsi` now intrinsic methods on symbol types
94+
*
95+
* Internalizations:
96+
* FSharp.Compiler.AbstractIL.* now internal
97+
* FSharp.Compiler.ErrorLogger.* now internal
98+
*
99+
* New functions in the SourceCodeServices API:
100+
*
101+
* `FSharpDiagnostic.NewlineifyErrorString`
102+
* `FSharpDiagnostic.NormalizeErrorString`
103+
*
104+
* Add ConvertToAnonymousRecord quick fixeroony [#10493](https://github.com/dotnet/fsharp/pull/10493)
70105
* Add UseMutationWhenValueIsMutable code fix [#10488](https://github.com/dotnet/fsharp/pull/10488)
71106
* Add MakeDeclarationMutable code fix [#10480](https://github.com/dotnet/fsharp/pull/10480)
72107
* Add ChangeToUpcast code fix [#10463](https://github.com/dotnet/fsharp/pull/10463)
@@ -479,7 +514,7 @@ Significant improvements in the F# tools, such as performance enhancements and s
479514
There is now an experimental CodeLens implementation, contributed by [Victor Peter Rouven Müller](https://github.com/realvictorprm). You can turn it on in **Options > Text Editor > F# > Code Lens**.
480515
* A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by [Sebastian Urban](https://github.com/surban).
481516
* Code that uses `Dictionary` with `ContainsKey` and subsequent `Item` calls has been changed to use `TryGetValue`, by [Eugene Auduchinok](https://github.com/auduchinok).
482-
* [Jakob Majoka](https://github.com/majocha) also contributed in the process of consuming a different API for Tooltips.
517+
* [Jakob Majoka](https://github.com/majocha) also contributed in the process of consuming a different API for FSharpToolTip.
483518

484519
#### Infrastructure, Packaging, and Open Source Improvements
485520

@@ -743,7 +778,7 @@ Integrate dotnet/fsharp from 48f932cf8 to 085985140. Notable changes include:
743778
* Integrate dotnet/fsharp from 5a8f454a1 to 05c558a61
744779
* Notable changes include:
745780
* Removal of the `Microsoft.FSharp.Compiler.SourceCodeServices` namespace
746-
* A new API for determining if an identifier needs to be quoted is available: `FSharp.Compiler.LexHelp.Keywords.DoesIdentifierNeedQuotation`
781+
* A new API for determining if an identifier needs to be quoted is available: `FSharp.Compiler.LexHelp.FSharpKeywords.DoesIdentifierNeedQuotation`
747782
* Enhancements to the correctness of PDBs
748783
* Better string formatting of records and values
749784
* More stack overflow fixes in the compiler
@@ -1053,7 +1088,7 @@ Integrate dotnet/fsharp from 48f932cf8 to 085985140. Notable changes include:
10531088

10541089
* Integrate visualfsharp/master and fsharp/master --> master
10551090
* Expose QualifiedName and FileName of FSharpImplementationFileContents
1056-
* Add FSharpErrorInfo.ErrorNumber
1091+
* Add FSharpDiagnostic.ErrorNumber
10571092

10581093
### 2.0.0.1-beta
10591094

src/fsharp/CheckDeclarations.fs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3327,6 +3327,7 @@ module EstablishTypeDefinitionCores =
33273327
TNoRepr
33283328

33293329
| SynTypeDefnSimpleRepr.LibraryOnlyILAssembly (s, m) ->
3330+
let s = (s :?> ILType)
33303331
// Run InferTyconKind to raise errors on inconsistent attribute sets
33313332
InferTyconKind cenv.g (TyconILAssemblyCode, attrs, [], [], inSig, true, m) |> ignore
33323333
TAsmRepr s
@@ -3931,6 +3932,7 @@ module EstablishTypeDefinitionCores =
39313932
TRecdRepr (Construct.MakeRecdFieldsTable recdFields), None, NoSafeInitInfo
39323933

39333934
| SynTypeDefnSimpleRepr.LibraryOnlyILAssembly (s, _) ->
3935+
let s = (s :?> ILType)
39343936
noCLIMutableAttributeCheck()
39353937
noMeasureAttributeCheck()
39363938
noSealedAttributeCheck FSComp.SR.tcTypesAreAlwaysSealedAssemblyCode
@@ -5793,7 +5795,7 @@ let TypeCheckOneImplFile
57935795
let envinner, mtypeAcc = MakeInitialEnv env
57945796

57955797
let defs = [ for x in implFileFrags -> SynModuleDecl.NamespaceFragment x ]
5796-
let! mexpr, topAttrs, envAtEnd = TcModuleOrNamespaceElements cenv ParentNone qualNameOfFile.Range envinner PreXmlDocEmpty None defs
5798+
let! mexpr, topAttrs, envAtEnd = TcModuleOrNamespaceElements cenv ParentNone qualNameOfFile.Range envinner PreXmlDoc.Empty None defs
57975799

57985800
let implFileTypePriorToSig = !mtypeAcc
57995801

@@ -5900,7 +5902,7 @@ let TypeCheckOneSigFile (g, niceNameGen, amap, topCcu, checkForErrors, condition
59005902
let envinner, mtypeAcc = MakeInitialEnv tcEnv
59015903

59025904
let specs = [ for x in sigFileFrags -> SynModuleSigDecl.NamespaceFragment x ]
5903-
let! tcEnv = TcSignatureElements cenv ParentNone qualNameOfFile.Range envinner PreXmlDocEmpty None specs
5905+
let! tcEnv = TcSignatureElements cenv ParentNone qualNameOfFile.Range envinner PreXmlDoc.Empty None specs
59045906

59055907
let sigFileType = !mtypeAcc
59065908

src/fsharp/CheckExpressions.fs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2661,15 +2661,15 @@ let TcVal checkAttributes cenv env tpenv (vref: ValRef) optInst optAfterResoluti
26612661
| ValInRecScope true
26622662
| ValNotInRecScope ->
26632663
let tpsorig, tps, tptys, tau = FreshenPossibleForallTy cenv.g m TyparRigidity.Flexible vty
2664-
//dprintfn "After Freshen: tau = %s" (Layout.showL (typeL tau))
2664+
//dprintfn "After Freshen: tau = %s" (LayoutRender.showL (typeL tau))
26652665
let (tinst: TypeInst), tpenv = checkTys tpenv (tps |> List.map (fun tp -> tp.Kind))
26662666
checkInst tinst
2667-
//dprintfn "After Check: tau = %s" (Layout.showL (typeL tau))
2667+
//dprintfn "After Check: tau = %s" (LayoutRender.showL (typeL tau))
26682668
if tptys.Length <> tinst.Length then error(Error(FSComp.SR.tcTypeParameterArityMismatch(tps.Length, tinst.Length), m))
26692669
List.iter2 (UnifyTypes cenv env m) tptys tinst
26702670
TcValEarlyGeneralizationConsistencyCheck cenv env (v, vrec, tinst, vty, tau, m)
26712671

2672-
//dprintfn "After Unify: tau = %s" (Layout.showL (typeL tau))
2672+
//dprintfn "After Unify: tau = %s" (LayoutRender.showL (typeL tau))
26732673
tpsorig, vrefFlags, tinst, tau, tpenv
26742674

26752675
let exprForVal = Expr.Val (vref, vrefFlags, m)
@@ -5774,6 +5774,7 @@ and TcExprUndelayed cenv overallTy env tpenv (synExpr: SynExpr) =
57745774
mkf n e2', tpenv
57755775

57765776
| SynExpr.LibraryOnlyILAssembly (s, tyargs, args, rtys, m) ->
5777+
let s = (s :?> ILInstr[])
57775778
let argTys = NewInferenceTypes args
57785779
let tyargs', tpenv = TcTypes cenv NewTyparsOK CheckCxs ItemOccurence.UseInType env tpenv tyargs
57795780
// No subsumption at uses of IL assembly code

src/fsharp/CompilerConfig.fs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ open FSharp.Compiler.Features
2727
open FSharp.Compiler.Lib
2828
open FSharp.Compiler.Range
2929
open FSharp.Compiler.ReferenceResolver
30+
open FSharp.Compiler.SourceCodeServices
3031
open FSharp.Compiler.TypedTree
3132

3233
open Microsoft.DotNet.DependencyManager
@@ -342,7 +343,7 @@ type TcConfigBuilder =
342343
mutable useHighEntropyVA: bool
343344
mutable inputCodePage: int option
344345
mutable embedResources: string list
345-
mutable errorSeverityOptions: FSharpErrorSeverityOptions
346+
mutable errorSeverityOptions: FSharpDiagnosticOptions
346347
mutable mlCompatibility: bool
347348
mutable checkOverflow: bool
348349
mutable showReferenceResolutions: bool
@@ -504,7 +505,7 @@ type TcConfigBuilder =
504505
projectReferences = []
505506
knownUnresolvedReferences = []
506507
loadedSources = []
507-
errorSeverityOptions = FSharpErrorSeverityOptions.Default
508+
errorSeverityOptions = FSharpDiagnosticOptions.Default
508509
embedResources = []
509510
inputCodePage = None
510511
reduceMemoryUsage = ReduceMemoryFlag.Yes // always gets set explicitly

src/fsharp/CompilerConfig.fsi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ open FSharp.Compiler.AbstractIL.Internal.Library
1616
open FSharp.Compiler.ErrorLogger
1717
open FSharp.Compiler.Features
1818
open FSharp.Compiler.Range
19+
open FSharp.Compiler.SourceCodeServices
1920

2021
open Microsoft.DotNet.DependencyManager
2122

@@ -161,7 +162,7 @@ type TcConfigBuilder =
161162
mutable useHighEntropyVA: bool
162163
mutable inputCodePage: int option
163164
mutable embedResources: string list
164-
mutable errorSeverityOptions: FSharpErrorSeverityOptions
165+
mutable errorSeverityOptions: FSharpDiagnosticOptions
165166
mutable mlCompatibility:bool
166167
mutable checkOverflow:bool
167168
mutable showReferenceResolutions:bool
@@ -342,7 +343,7 @@ type TcConfig =
342343
member reduceMemoryUsage: ReduceMemoryFlag
343344
member inputCodePage: int option
344345
member embedResources: string list
345-
member errorSeverityOptions: FSharpErrorSeverityOptions
346+
member errorSeverityOptions: FSharpDiagnosticOptions
346347
member mlCompatibility:bool
347348
member checkOverflow:bool
348349
member showReferenceResolutions:bool

src/fsharp/CompilerDiagnostics.fs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,13 @@ open FSharp.Compiler.MethodOverrides
3030
open FSharp.Compiler.NameResolution
3131
open FSharp.Compiler.ParseHelpers
3232
open FSharp.Compiler.PrettyNaming
33+
open FSharp.Compiler.SourceCodeServices
3334
open FSharp.Compiler.SyntaxTree
3435
open FSharp.Compiler.Range
3536
open FSharp.Compiler.SignatureConformance
37+
open FSharp.Compiler.TextLayout
38+
open FSharp.Compiler.TextLayout.Layout
39+
open FSharp.Compiler.TextLayout.TaggedText
3640
open FSharp.Compiler.TypedTree
3741
open FSharp.Compiler.TypedTreeBasics
3842
open FSharp.Compiler.TypedTreeOps
@@ -768,16 +772,16 @@ let OutputPhasedErrorR (os: StringBuilder) (err: PhasedDiagnostic) (canSuggestNa
768772
let argsL,retTyL,genParamTysL = NicePrint.prettyLayoutsOfUnresolvedOverloading denv argRepr retTy genericParameterTypes
769773

770774
match callerArgs.ArgumentNamesAndTypes with
771-
| [] -> None, Layout.showL retTyL, Layout.showL genParamTysL
775+
| [] -> None, LayoutRender.showL retTyL, LayoutRender.showL genParamTysL
772776
| items ->
773-
let args = Layout.showL argsL
777+
let args = LayoutRender.showL argsL
774778
let prefixMessage =
775779
match items with
776780
| [_] -> FSComp.SR.csNoOverloadsFoundArgumentsPrefixSingular
777781
| _ -> FSComp.SR.csNoOverloadsFoundArgumentsPrefixPlural
778782
Some (prefixMessage args)
779-
, Layout.showL retTyL
780-
, Layout.showL genParamTysL
783+
, LayoutRender.showL retTyL
784+
, LayoutRender.showL genParamTysL
781785

782786
let knownReturnType =
783787
match knownReturnType with

src/fsharp/CompilerDiagnostics.fsi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ module internal FSharp.Compiler.CompilerDiagnostics
66
open System.Text
77
open FSharp.Compiler.ErrorLogger
88
open FSharp.Compiler.Range
9+
open FSharp.Compiler.SourceCodeServices
910
open FSharp.Compiler.SyntaxTree
1011

1112
#if DEBUG
@@ -101,9 +102,9 @@ val GetErrorLoggerFilteringByScopedPragmas: checkFile:bool * ScopedPragma list *
101102
val SanitizeFileName: fileName: string -> implicitIncludeDir: string -> string
102103

103104
/// Indicates if we should report a warning
104-
val ReportWarning: FSharpErrorSeverityOptions -> PhasedDiagnostic -> bool
105+
val ReportWarning: FSharpDiagnosticOptions -> PhasedDiagnostic -> bool
105106

106107
/// Indicates if we should report a warning as an error
107-
val ReportWarningAsError: FSharpErrorSeverityOptions -> PhasedDiagnostic -> bool
108+
val ReportWarningAsError: FSharpDiagnosticOptions -> PhasedDiagnostic -> bool
108109

109110

src/fsharp/CompilerGlobalState.fsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/// Defines the global environment for all type checking.
44
5-
module FSharp.Compiler.CompilerGlobalState
5+
module internal FSharp.Compiler.CompilerGlobalState
66

77
open FSharp.Compiler.Range
88

src/fsharp/CompilerImports.fs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ open FSharp.Compiler.ErrorLogger
2929
open FSharp.Compiler.Import
3030
open FSharp.Compiler.Lib
3131
open FSharp.Compiler.PrettyNaming
32+
open FSharp.Compiler.SourceCodeServices
3233
open FSharp.Compiler.SyntaxTreeOps
3334
open FSharp.Compiler.Range
3435
open FSharp.Compiler.ReferenceResolver

src/fsharp/CompilerOptions.fs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@ open FSharp.Compiler.Features
2222
open FSharp.Compiler.IlxGen
2323
open FSharp.Compiler.Lib
2424
open FSharp.Compiler.Range
25+
open FSharp.Compiler.SourceCodeServices
2526
open FSharp.Compiler.TcGlobals
27+
open FSharp.Compiler.TextLayout
28+
open FSharp.Compiler.TextLayout.Layout
29+
open FSharp.Compiler.TextLayout.TaggedText
2630
open FSharp.Compiler.TypedTree
2731
open FSharp.Compiler.TypedTreeOps
2832
open FSharp.Compiler.ErrorLogger
2933

3034
open Internal.Utilities
31-
open Internal.Utilities.StructuredFormat
3235

3336
module Attributes =
3437
open System.Runtime.CompilerServices
@@ -196,7 +199,6 @@ module ResponseFile =
196199
with e ->
197200
Choice2Of2 e
198201

199-
200202
let ParseCompilerOptions (collectOtherArgument: string -> unit, blocks: CompilerOptionBlock list, args) =
201203
use unwindBuildPhase = PushThreadBuildPhaseUntilUnwind BuildPhase.Parameter
202204

@@ -1621,10 +1623,10 @@ let PrintWholeAssemblyImplementation g (tcConfig:TcConfig) outfile header expr =
16211623
let filename = outfile + ".terms"
16221624
use f = System.IO.File.CreateText (filename + "-" + string showTermFileCount + "-" + header)
16231625
showTermFileCount <- showTermFileCount + 1
1624-
Layout.outL f (Display.squashTo 192 (DebugPrint.implFilesL g expr))
1626+
LayoutRender.outL f (Display.squashTo 192 (DebugPrint.implFilesL g expr))
16251627
else
16261628
dprintf "\n------------------\nshowTerm: %s:\n" header
1627-
Layout.outL stderr (Display.squashTo 192 (DebugPrint.implFilesL g expr))
1629+
LayoutRender.outL stderr (Display.squashTo 192 (DebugPrint.implFilesL g expr))
16281630
dprintf "\n------------------\n"
16291631

16301632
//----------------------------------------------------------------------------

src/fsharp/CreateILModule.fs

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,59 +3,32 @@
33
module internal FSharp.Compiler.CreateILModule
44

55
open System
6-
open System.Collections.Generic
7-
open System.Diagnostics
8-
open System.Globalization
96
open System.IO
107
open System.Reflection
11-
open System.Text
12-
open System.Threading
138

149
open Internal.Utilities
15-
open Internal.Utilities.Collections
16-
open Internal.Utilities.Filename
17-
open Internal.Utilities.StructuredFormat
1810

1911
open FSharp.Compiler
2012
open FSharp.Compiler.AbstractIL
2113
open FSharp.Compiler.AbstractIL.IL
22-
open FSharp.Compiler.AbstractIL.ILBinaryReader
2314
open FSharp.Compiler.AbstractIL.Internal
2415
open FSharp.Compiler.AbstractIL.Internal.Library
2516
open FSharp.Compiler.AbstractIL.Internal.Utils
26-
open FSharp.Compiler.AbstractIL.Diagnostics
27-
open FSharp.Compiler.AccessibilityLogic
17+
open FSharp.Compiler.AbstractIL.Internal.StrongNameSign
2818
open FSharp.Compiler.BinaryResourceFormats
29-
open FSharp.Compiler.CheckExpressions
3019
open FSharp.Compiler.CheckDeclarations
3120
open FSharp.Compiler.CompilerConfig
32-
open FSharp.Compiler.CompilerDiagnostics
3321
open FSharp.Compiler.CompilerImports
34-
open FSharp.Compiler.CompilerOptions
3522
open FSharp.Compiler.CompilerGlobalState
3623
open FSharp.Compiler.ErrorLogger
3724
open FSharp.Compiler.IlxGen
38-
open FSharp.Compiler.InfoReader
3925
open FSharp.Compiler.Lib
40-
open FSharp.Compiler.ParseAndCheckInputs
41-
open FSharp.Compiler.PrettyNaming
4226
open FSharp.Compiler.OptimizeInputs
43-
open FSharp.Compiler.ScriptClosure
44-
open FSharp.Compiler.SyntaxTree
27+
open FSharp.Compiler.SourceCodeServices
4528
open FSharp.Compiler.Range
4629
open FSharp.Compiler.TypedTree
47-
open FSharp.Compiler.TypedTreeBasics
4830
open FSharp.Compiler.TypedTreeOps
4931
open FSharp.Compiler.TcGlobals
50-
open FSharp.Compiler.XmlDocFileWriter
51-
open FSharp.Compiler.StaticLinking
52-
open Microsoft.DotNet.DependencyManager
53-
54-
open FSharp.Compiler.AbstractIL.Internal.StrongNameSign
55-
56-
#if !NO_EXTENSIONTYPING
57-
open FSharp.Compiler.ExtensionTyping
58-
#endif
5932

6033
//----------------------------------------------------------------------------
6134
// Helpers for finding attributes

0 commit comments

Comments
 (0)