@@ -22,7 +22,7 @@ import { LSPIS001_standalone_skip_directive_not_supported } from "./language-ser
2222import { DeprecateIncludes } from "./compiler/IBM2444Iff-deprecate" ;
2323import { typeCheck } from "./type-check-validator" ;
2424import { CompilationUnit } from "../workspace/compilation-unit" ;
25- import { IncludeDirective } from "../syntax-tree/ast" ;
25+ import { IncludeDirective , IncludeItem } from "../syntax-tree/ast" ;
2626import { DiagnosticCategory } from "./diagnostics-store" ;
2727import { Severity } from "../language-server/types" ;
2828
@@ -48,20 +48,31 @@ function PropagateIncludeErrors(
4848 compilationUnit : CompilationUnit ,
4949) : void {
5050 for ( const item of includeDirective . items . filter ( ( i ) => i . filePath ) ) {
51- const errors = [
52- DiagnosticCategory . Lexer ,
53- DiagnosticCategory . Parser ,
54- DiagnosticCategory . CompilerOptions ,
55- ] . flatMap ( ( category ) =>
56- compilationUnit . diagnostics . getByUri ( category , item . filePath ! ) ,
57- ) ;
58- if ( errors . length > 0 ) {
59- acceptor ( {
60- uri : item . token ?. uri ?. toString ( ) ,
61- range : item . range ?? undefined ,
62- message : `Included file '${ item . relativeFilePath } ' contains ${ errors . length } errors.` ,
63- severity : Severity . E ,
64- } ) ;
65- }
51+ PropagateIncludeItemErrors ( item , acceptor , compilationUnit ) ;
52+ }
53+ }
54+
55+ export function PropagateIncludeItemErrors (
56+ item : IncludeItem ,
57+ acceptor : ValidationAcceptor ,
58+ compilationUnit : CompilationUnit ,
59+ ) : void {
60+ const errors = [
61+ DiagnosticCategory . Lexer ,
62+ DiagnosticCategory . Parser ,
63+ DiagnosticCategory . CompilerOptions ,
64+ ] . flatMap ( ( category ) =>
65+ compilationUnit . diagnostics . getByUri ( category , item . filePath ! ) ,
66+ ) ;
67+ if ( errors . length > 0 && item . token ) {
68+ acceptor ( {
69+ uri : item . token . uri ?. toString ( ) ,
70+ range : item . range ?? {
71+ start : item . token . startOffset ,
72+ end : item . token . endOffset + 1 ,
73+ } ,
74+ message : `Included file '${ item . relativeFilePath } ' contains ${ errors . length } errors.` ,
75+ severity : Severity . E ,
76+ } ) ;
6677 }
6778}
0 commit comments