In a test codeunit, creating a ModalPageHandler and replicating it, with the same name and the same sign, the CodeAnaliysis crashes.
codeunit 50100 MyCodeunit
{
Subtype = Test;
trigger OnRun()
begin
end;
[ModalPageHandler]
procedure Tes_ModalPageHandler(var CustomerCard: TestPage "Customer Card")
begin
end;
[ModalPageHandler]
procedure Tes_ModalPageHandler(var CustomerCard: TestPage "Customer Card")
begin
end;
}
Error:
Internal error: System.AggregateException: Si sono verificati uno o pi霉 errori. ---> System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.CompareOverloadParameter(ParameterSymbol parameterA, ParameterSymbol parameterB) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 294
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.CheckOverloadUniqueness(PooledList`1 methods, MethodSymbol method, DiagnosticBag diagnostics) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 264
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.ForceMembersCompleteAndCheckUniqueness(SourceLocation locationOpt, DiagnosticBag diagnostics, CancellationToken cancellationToken, Predicate`1 excludeFromNameUniqueness) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 235
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.ForceCompleteMembers(SourceLocation locationOpt, CancellationToken cancellationToken, Predicate`1 excludeFromNameUniqueness) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 766
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken, Predicate`1 excludeFromNameUniqueness) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 734
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceCodeunitTypeSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceCodeunitTypeSymbol.cs:riga 52
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceModuleSymbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceModuleSymbol.cs:riga 207
in Microsoft.Dynamics.Nav.CodeAnalysis.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Utilities\UICultureUtilities.cs:riga 178
in System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
in System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
in System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
--- Fine della traccia dello stack dell'eccezione interna ---
in System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
in System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
in System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
in System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body)
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceModuleSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceModuleSymbol.cs:riga 109
in Microsoft.Dynamics.Nav.CodeAnalysis.Compilation.GetSourceDeclarationDiagnostics(SyntaxTree syntaxTree, Nullable`1 filterSpanWithinTree, Func`4 locationFilterOpt, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compilation\Compilation.cs:riga 889
in Microsoft.Dynamics.Nav.CodeAnalysis.Compilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compilation\Compilation.cs:riga 583
---> (Eccezione interna 0) System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.CompareOverloadParameter(ParameterSymbol parameterA, ParameterSymbol parameterB) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 294
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.CheckOverloadUniqueness(PooledList`1 methods, MethodSymbol method, DiagnosticBag diagnostics) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 264
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.ForceMembersCompleteAndCheckUniqueness(SourceLocation locationOpt, DiagnosticBag diagnostics, CancellationToken cancellationToken, Predicate`1 excludeFromNameUniqueness) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 235
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.ForceCompleteMembers(SourceLocation locationOpt, CancellationToken cancellationToken, Predicate`1 excludeFromNameUniqueness) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 766
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ObjectMembers`1.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken, Predicate`1 excludeFromNameUniqueness) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Members\ObjectMembers.cs:riga 734
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceCodeunitTypeSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceCodeunitTypeSymbol.cs:riga 52
in Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceModuleSymbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceModuleSymbol.cs:riga 207
in Microsoft.Dynamics.Nav.CodeAnalysis.Utilities.UICultureUtilities.<>c__DisplayClass6_0`1.<WithCurrentUICulture>b__0(T param) in F:\a\296\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Utilities\UICultureUtilities.cs:riga 178
in System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
in System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
in System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)<---
Expected behavior
The second procedure should be marked as an error.
Versions:
Hi @Nyryus ! This has been fixed in the preview build. It will reach the marketplace with the next major update.
Most helpful comment
Hi @Nyryus ! This has been fixed in the preview build. It will reach the marketplace with the next major update.