@@ -906,12 +906,26 @@ function validateCalcPvrIdentifierReferences(
906906 refProvider : SepticReferenceProvider ,
907907 doc : ITextDocument
908908) : Diagnostic [ ] {
909+ const diagnostics : Diagnostic [ ] = [ ] ;
910+ if ( refProvider . validateRef ( obj . identifier ! . name , hasDuplicateCalcPvrRef ) ) {
911+ diagnostics . push (
912+ createDiagnostic (
913+ DiagnosticSeverity . Warning ,
914+ {
915+ start : doc . positionAt ( obj . identifier ! . start ) ,
916+ end : doc . positionAt ( obj . identifier ! . end ) ,
917+ } ,
918+ `Duplicate CalcPvr with name: ${ obj . identifier ! . name } ` ,
919+ DiagnosticCode . duplicate
920+ )
921+ ) ;
922+ }
909923 const referenceToEvr = refProvider . validateRef (
910924 obj . identifier ! . name ,
911925 hasReferenceToEvr
912926 ) ;
913927 if ( referenceToEvr ) {
914- return [ ] ;
928+ return diagnostics ;
915929 }
916930 const referenceToXvr = refProvider . validateRef (
917931 obj . identifier ! . name ,
@@ -926,7 +940,7 @@ function validateCalcPvrIdentifierReferences(
926940 const code = referenceToXvr
927941 ? DiagnosticCode . invalidReference
928942 : DiagnosticCode . missingReference ;
929- return [
943+ diagnostics . push (
930944 createDiagnostic (
931945 severity ,
932946 {
@@ -936,7 +950,8 @@ function validateCalcPvrIdentifierReferences(
936950 message ,
937951 code
938952 ) ,
939- ] ;
953+ ) ;
954+ return diagnostics ;
940955}
941956
942957function validateUAApplReferences (
@@ -973,6 +988,19 @@ const hasReferenceToEvr: RefValidationFunction = (refs: SepticReference[]) => {
973988 return false ;
974989} ;
975990
991+ const hasDuplicateCalcPvrRef : RefValidationFunction = ( refs : SepticReference [ ] ) => {
992+ let seen = false ;
993+ for ( const ref of refs ) {
994+ if ( ref . obj ?. isType ( "CalcPvr" ) ) {
995+ if ( seen ) {
996+ return true ;
997+ }
998+ seen = true ;
999+ }
1000+ }
1001+ return false ;
1002+ } ;
1003+
9761004export function validateEvrReferences (
9771005 obj : SepticObject ,
9781006 refProvider : SepticReferenceProvider ,
0 commit comments