Al: Compilation failed while using interface

Created on 11 May 2020  路  3Comments  路  Source: microsoft/AL

Describe the bug
When adding a interface, there is a compilation error.

To Reproduce
Steps and to reproduce the behavior:

  1. I created a project with a table and 2 enums for fields, then a simple interface:

interface isaHIE_Hierarchy
{
procedure GetCaption(): Text;
}

Expected behavior
Without the interface, the project compilation is OK; With interface then KO event if I add some implementations.

Compilator error
Processing of message 'al/createPackage' failed with error: 'Object reference not set to an instance of an object.'
Details:
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.LabelWriterVisitor.VisitSymbolWithProperties(Symbol symbolWithProperties) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\LabelWriterVisitor.cs:line 144
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.LabelWriterVisitor.DefaultVisit(Symbol symbol) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\LabelWriterVisitor.cs:line 59
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SymbolVisitor.VisitContainer(ContainerSymbol node) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SymbolVisitor.Generated.cs:line 291
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SymbolVisitor.VisitType(TypeSymbol node) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SymbolVisitor.Generated.cs:line 296
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SymbolVisitor.VisitObjectType(ObjectTypeSymbol node) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SymbolVisitor.Generated.cs:line 301
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SymbolVisitor.VisitInterfaceType(InterfaceTypeSymbol node) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SymbolVisitor.Generated.cs:line 141
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.LabelWriterVisitor.VisitMembersOfSymbol(Symbol symbol) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\LabelWriterVisitor.cs:line 225
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SymbolVisitor.VisitContainer(ContainerSymbol node) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SymbolVisitor.Generated.cs:line 291
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SymbolVisitor.VisitModule(ModuleSymbol node) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Generated\SymbolVisitor.Generated.cs:line 161
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.LanguageFileOutputter.<>c__DisplayClass1_0.b__0() in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\LanguageFileOutputter.cs:line 40
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.XliffOutputter.<>c__DisplayClass2_0.b__3() in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\XliffOutputter.cs:line 100
at Microsoft.Dynamics.Nav.CodeAnalysis.Utilities.XmlUtilities.WriteStartEnd(XmlWriter writer, String nodeName, Action action, String namespace) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Utilities\XmlUtilities.cs:line 25
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.XliffOutputter.<>c__DisplayClass2_0.b__2() in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\XliffOutputter.cs:line 97
at Microsoft.Dynamics.Nav.CodeAnalysis.Utilities.XmlUtilities.WriteStartEnd(XmlWriter writer, String nodeName, Action action, String namespace) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Utilities\XmlUtilities.cs:line 25
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.XliffOutputter.<>c__DisplayClass2_0.b__1() in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\XliffOutputter.cs:line 96
at Microsoft.Dynamics.Nav.CodeAnalysis.Utilities.XmlUtilities.WriteStartEnd(XmlWriter writer, String nodeName, Action action, String namespace) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Utilities\XmlUtilities.cs:line 25
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.XliffOutputter.<>c__DisplayClass2_0.b__0() in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\XliffOutputter.cs:line 84
at Microsoft.Dynamics.Nav.CodeAnalysis.Utilities.XmlUtilities.WriteStartEnd(XmlWriter writer, String nodeName, Action action, String namespace) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Utilities\XmlUtilities.cs:line 25
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.XliffOutputter.WriteDefaultNodesAndContinue(XmlWriter writer, String appName, String targetLanguage, Action groupContentWriter) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\XliffOutputter.cs:line 78
at Microsoft.Dynamics.Nav.CodeAnalysis.Translation.LanguageFileOutputter.OutputLanguageFile(Compilation compilation, Stream outputStream, String appName, DiagnosticBag diagnosticBag) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Translation\LanguageFile\LanguageFileOutputter.cs:line 36
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.OutputLanguageFile(Compilation compilation, CompilerTextWriter consoleOutput, ErrorLogger errorLogger, DiagnosticBag diagnosticBag) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 606
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.GenerateLanguageFile(Compilation compilation, CompilerTextWriter consoleOutput, ErrorLogger errorLogger) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 560
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.RunCoreImpl(CompilerTextWriter consoleOutput, ErrorLogger errorLogger, Compilation compilation, AnalyzerDriver analyzerDriver, IEnumerable1 analyzerExceptionDiagnostics, IEnumerable1 additionalTextFiles, CancellationToken cancellationToken) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 521
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.RunCore(CompilerTextWriter consoleOutput, ErrorLogger errorLogger, CancellationToken cancellationToken) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 476
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.Run(CompilerTextWriter consoleOutput, CancellationToken cancellationToken) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 332
at Microsoft.Dynamics.Nav.EditorServices.Protocol.LanguageServer.Extensions.CreatePackageRequestHandler.Build(Project builtProject, StreamingTextWriter outputWriter, Boolean isRad, IList1 args, CancellationToken cancellationToken, Boolean forceBuild, PooledList1 outputFiles) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\LanguageServer\Extensions\CreatePackageRequestHandler.cs:line 174
at Microsoft.Dynamics.Nav.EditorServices.Protocol.LanguageServer.Extensions.CreatePackageRequestHandler.HandleAsync(CreatePackageRequest request, Int32 requestId, CancellationToken cancellationToken) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\LanguageServer\Extensions\CreatePackageRequestHandler.cs:line 103
at Microsoft.Dynamics.Nav.EditorServices.Protocol.MessageProtocol.RequestHandlerBase`1.HandleAsync(JToken requestContents, Int32 requestId, CancellationToken cancellationToken) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\MessageProtocol\RequestHandlerBase.cs:line 54
at Microsoft.Dynamics.Nav.EditorServices.Protocol.RequestRegistry.Process(Message message) in D:\a\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\Endpoints\RequestRegistry.cs:line 80

5. Versions:

  • AL Language: 5.0.270354
  • Business Central: 16.0.11240.12474
bug

All 3 comments

Can you share a small project that reproduces this issue?

Just create a new project. In app.json add the option below:
"features": [
"TranslationFile","GenerateCaptions"
]
then create a simple interface like:
interface InterfaceTemplate
{
procedure GetCaption(): Text;
}
then you get the compilation error.
Remove the ,"GenerateCaptions" in app.json, then it will be Ok.

Any news on this bug?

Was this page helpful?
0 / 5 - 0 ratings