@@ -9,7 +9,6 @@ namespace FSharp.Compiler.Diagnostics
9
9
10
10
open System
11
11
12
- open FSharp.Compiler .AttributeChecking
13
12
open FSharp.Compiler .CheckExpressions
14
13
open FSharp.Compiler .ConstraintSolver
15
14
open FSharp.Compiler .SignatureConformance
@@ -26,11 +25,10 @@ open FSharp.Compiler.CompilerDiagnostics
26
25
open FSharp.Compiler .Diagnostics
27
26
open FSharp.Compiler .DiagnosticsLogger
28
27
open FSharp.Compiler .Text
29
- open FSharp.Compiler .Text .Position
30
28
open FSharp.Compiler .Text .Range
31
29
32
30
module ExtendedData =
33
- [<RequireQualifiedAccess; Experimental ( " This FCS API is experimental and subject to change. " ) >]
31
+ [<RequireQualifiedAccess>]
34
32
type DiagnosticContextInfo =
35
33
| NoContext
36
34
| IfExpression
@@ -46,7 +44,7 @@ module ExtendedData =
46
44
| FollowingPatternMatchClause
47
45
| PatternMatchGuard
48
46
| SequenceExpression
49
- with
47
+
50
48
static member From ( contextInfo : ContextInfo ) =
51
49
match contextInfo with
52
50
| ContextInfo.NoContext -> NoContext
@@ -64,110 +62,83 @@ module ExtendedData =
64
62
| ContextInfo.PatternMatchGuard _ -> PatternMatchGuard
65
63
| ContextInfo.SequenceExpression _ -> SequenceExpression
66
64
67
- [<Interface ; Experimental ( " This FCS API is experimental and subject to change. " ) >]
68
- type IFSharpDiagnosticExtendedData = interface end
65
+ type IFSharpDiagnosticExtendedData =
66
+ interface end
69
67
70
- /// Additional data for diagnostics about obsolete attributes.
71
- [<Class; Experimental( " This FCS API is experimental and subject to change." ) >]
72
- type ObsoleteDiagnosticExtendedData
73
- internal ( diagnosticId: string option, urlFormat: string option) =
68
+ type ObsoleteDiagnosticExtendedData internal ( diagnosticId : string option , urlFormat : string option ) =
74
69
interface IFSharpDiagnosticExtendedData
75
- /// Represents the DiagnosticId of the diagnostic
76
- member this.DiagnosticId : string option = diagnosticId
77
70
78
- /// Represents the URL format of the diagnostic
71
+ member this.DiagnosticId : string option = diagnosticId
79
72
member this.UrlFormat : string option = urlFormat
80
73
81
- /// Additional data for diagnostics about experimental attributes.
82
- [<Class; Experimental( " This FCS API is experimental and subject to change." ) >]
83
- type ExperimentalExtendedData
84
- internal ( diagnosticId: string option, urlFormat: string option) =
74
+ type ExperimentalExtendedData internal ( diagnosticId : string option , urlFormat : string option ) =
85
75
interface IFSharpDiagnosticExtendedData
86
- /// Represents the DiagnosticId of the diagnostic
87
- member this.DiagnosticId : string option = diagnosticId
88
76
89
- /// Represents the URL format of the diagnostic
77
+ member this.DiagnosticId : string option = diagnosticId
90
78
member this.UrlFormat : string option = urlFormat
91
79
92
- [<Experimental( " This FCS API is experimental and subject to change." ) >]
93
- type TypeMismatchDiagnosticExtendedData
94
- internal ( symbolEnv: SymbolEnv, dispEnv: DisplayEnv, expectedType: TType, actualType: TType, context: DiagnosticContextInfo) =
80
+ type TypeMismatchDiagnosticExtendedData internal ( symbolEnv : SymbolEnv , dispEnv : DisplayEnv , expectedType : TType , actualType : TType ,
81
+ context: DiagnosticContextInfo) =
95
82
interface IFSharpDiagnosticExtendedData
96
83
97
84
member x.ExpectedType = FSharpType( symbolEnv, expectedType)
98
85
member x.ActualType = FSharpType( symbolEnv, actualType)
99
86
member x.ContextInfo = context
100
87
member x.DisplayContext = FSharpDisplayContext( fun _ -> dispEnv)
101
88
102
- [<Experimental( " This FCS API is experimental and subject to change." ) >]
103
- type ExpressionIsAFunctionExtendedData
104
- internal ( symbolEnv: SymbolEnv, actualType: TType) =
89
+ type ExpressionIsAFunctionExtendedData internal ( symbolEnv : SymbolEnv , actualType : TType ) =
105
90
interface IFSharpDiagnosticExtendedData
106
91
107
92
member x.ActualType = FSharpType( symbolEnv, actualType)
108
93
109
- [<Experimental( " This FCS API is experimental and subject to change." ) >]
110
- type FieldNotContainedDiagnosticExtendedData
111
- internal ( symbolEnv: SymbolEnv, implTycon: Tycon, sigTycon: Tycon, signatureField: RecdField, implementationField: RecdField) =
94
+ type FieldNotContainedDiagnosticExtendedData internal ( symbolEnv : SymbolEnv , implTycon : Tycon , sigTycon : Tycon ,
95
+ signatureField: RecdField, implementationField: RecdField) =
112
96
interface IFSharpDiagnosticExtendedData
97
+
113
98
member x.SignatureField = FSharpField( symbolEnv, RecdFieldRef.RecdFieldRef( mkLocalTyconRef sigTycon, signatureField.Id.idText))
114
- member x.ImplementationField = FSharpField( symbolEnv, RecdFieldRef.RecdFieldRef( mkLocalTyconRef implTycon, implementationField.Id.idText))
115
99
116
- [<Experimental( " This FCS API is experimental and subject to change." ) >]
117
- type ValueNotContainedDiagnosticExtendedData
118
- internal ( symbolEnv: SymbolEnv, signatureValue: Val, implValue: Val) =
100
+ member x.ImplementationField =
101
+ FSharpField( symbolEnv, RecdFieldRef.RecdFieldRef( mkLocalTyconRef implTycon, implementationField.Id.idText))
102
+
103
+ type ValueNotContainedDiagnosticExtendedData internal ( symbolEnv : SymbolEnv , signatureValue : Val , implValue : Val ) =
119
104
interface IFSharpDiagnosticExtendedData
105
+
120
106
member x.SignatureValue = FSharpMemberOrFunctionOrValue( symbolEnv, mkLocalValRef signatureValue)
121
107
member x.ImplementationValue = FSharpMemberOrFunctionOrValue( symbolEnv, mkLocalValRef implValue)
122
108
123
- [<Experimental( " This FCS API is experimental and subject to change." ) >]
124
- type ArgumentsInSigAndImplMismatchExtendedData
125
- internal ( sigArg: Ident, implArg: Ident) =
109
+ type ArgumentsInSigAndImplMismatchExtendedData internal ( sigArg : Ident , implArg : Ident ) =
126
110
interface IFSharpDiagnosticExtendedData
111
+
127
112
member x.SignatureName = sigArg.idText
128
113
member x.ImplementationName = implArg.idText
129
114
member x.SignatureRange = sigArg.idRange
130
115
member x.ImplementationRange = implArg.idRange
131
116
132
- [<Class; Experimental( " This FCS API is experimental and subject to change." ) >]
133
- type DefinitionsInSigAndImplNotCompatibleAbbreviationsDifferExtendedData
134
- internal ( signatureType: Tycon, implementationType: Tycon) =
117
+ type DefinitionsInSigAndImplNotCompatibleAbbreviationsDifferExtendedData internal ( signatureType : Tycon , implementationType : Tycon ) =
135
118
interface IFSharpDiagnosticExtendedData
136
- member x.SignatureRange : range = signatureType.Range
137
- member x.ImplementationRange : range = implementationType.Range
119
+
120
+ member x.SignatureRange = signatureType.Range
121
+ member x.ImplementationRange = implementationType.Range
138
122
139
123
open ExtendedData
140
124
141
- type FSharpDiagnostic ( m : range , severity : FSharpDiagnosticSeverity , message : string , subcategory : string , errorNum : int , numberPrefix : string , extendedData : IFSharpDiagnosticExtendedData option ) =
125
+ type FSharpDiagnostic ( m : range , severity : FSharpDiagnosticSeverity , message : string , subcategory : string , errorNum : int ,
126
+ numberPrefix: string, extendedData: IFSharpDiagnosticExtendedData option) =
142
127
member _.Range = m
143
-
144
128
member _.Severity = severity
145
-
146
129
member _.Message = message
147
-
148
130
member _.Subcategory = subcategory
149
-
150
131
member _.ErrorNumber = errorNum
151
-
152
132
member _.ErrorNumberPrefix = numberPrefix
153
-
154
133
member _.ErrorNumberText = numberPrefix + errorNum.ToString( " 0000" )
155
-
156
134
member _.Start = m.Start
157
-
158
135
member _.End = m.End
159
-
160
136
member _.StartLine = m.Start.Line
161
-
162
137
member _.EndLine = m.End.Line
163
-
164
138
member _.StartColumn = m.Start.Column
165
-
166
139
member _.EndColumn = m.End.Column
167
-
168
140
member _.FileName = m.FileName
169
141
170
- [<Experimental( " This FCS API is experimental and subject to change." ) >]
171
142
member _.ExtendedData = extendedData
172
143
173
144
member _.WithStart newStart =
@@ -305,7 +276,7 @@ type DiagnosticsScope(flatErrors: bool) =
305
276
| None -> err " "
306
277
307
278
/// A diagnostics logger that capture diagnostics, filtering them according to warning levels etc.
308
- type internal CompilationDiagnosticLogger ( debugName : string , options : FSharpDiagnosticOptions , ? preprocess : ( PhasedDiagnostic -> PhasedDiagnostic )) =
279
+ type internal CompilationDiagnosticLogger ( debugName : string , options : FSharpDiagnosticOptions , ? preprocess : ( PhasedDiagnostic -> PhasedDiagnostic )) =
309
280
inherit DiagnosticsLogger( " CompilationDiagnosticLogger(" + debugName+ " )" )
310
281
311
282
let mutable errorCount = 0
0 commit comments