peachpiecompiler / peachpie

PeachPie - the PHP compiler and runtime for .NET and .NET Core
https://www.peachpie.io
Apache License 2.0
2.33k stars 202 forks source link

error : Unexpected value 'Pchp.CodeAnalysis.Semantics.BoundBinaryEx' #1064

Closed matbech closed 1 year ago

matbech commented 2 years ago

I'm getting this error with the PeachPie 1.0.23

1>C:\Program Files\dotnet\sdk\7.0.100-preview.7.22377.5\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(219,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy
1>PeachPie PHP Compiler version 1.0.23+1e47a4b9321f542ab21269dad6b9d20315e277cd
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error : Unexpected value 'Pchp.CodeAnalysis.Semantics.BoundBinaryEx' of type 'Pchp.CodeAnalysis.Semantics.BoundBinaryEx'
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Pchp.CodeAnalysis.Symbols.SourceCustomAttribute.<ArgumentsToJson>g__ExpressionToJson|15_0(BoundExpression element, StringBuilder output)
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Pchp.CodeAnalysis.Symbols.SourceCustomAttribute.ArgumentsToJson()
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Pchp.CodeAnalysis.Symbols.SourceCustomAttribute.Bind()
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Pchp.CodeAnalysis.Symbols.SourceCustomAttribute.get_AttributeConstructor()
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Pchp.CodeAnalysis.Symbols.BaseAttributeData.Microsoft.Cci.ICustomAttribute.Constructor(EmitContext context, Boolean reportDiagnostics)
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.MetadataVisitor.Visit(ICustomAttribute customAttribute) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\MetadataVisitor.cs:line 55
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.MetadataVisitor.Visit(IEnumerable`1 customAttributes) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\MetadataVisitor.cs:line 47
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.ReferenceIndexerBase.VisitTypeDefinitionNoMembers(ITypeDefinition typeDefinition) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\ReferenceIndexerBase.cs:line 254
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.ReferenceIndexerBase.Visit(ITypeDefinition typeDefinition) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\ReferenceIndexerBase.cs:line 280
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.MetadataVisitor.Visit(IEnumerable`1 types) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\MetadataVisitor.cs:line 363
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.ReferenceIndexer.Visit(CommonPEModuleBuilder module) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\ReferenceIndexer.cs:line 35
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.MetadataWriter.CreateIndices() in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\MetadataWriter.cs:line 494
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.MetadataWriter.BuildMetadataAndIL(PdbWriter nativePdbWriterOpt, BlobBuilder ilBuilder, BlobBuilder mappedFieldDataBuilder, BlobBuilder managedResourceDataBuilder, Blob& mvidFixup, Blob& mvidStringFixup) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\MetadataWriter.cs:line 1783
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.Cci.PeWriter.WritePeToStream(EmitContext context, CommonMessageProvider messageProvider, Func`1 getPeStream, Func`1 getPortablePdbStreamOpt, PdbWriter nativePdbWriterOpt, String pdbPathOpt, Boolean metadataOnly, Boolean isDeterministic, Boolean emitTestCoverageData, Nullable`1 privateKeyOpt, CancellationToken cancellationToken) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\PEWriter\PeWriter.cs:line 79
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.CodeAnalysis.Compilation.SerializePeToStream(CommonPEModuleBuilder moduleBeingBuilt, DiagnosticBag metadataDiagnostics, CommonMessageProvider messageProvider, Func`1 getPeStream, Func`1 getMetadataPeStreamOpt, Func`1 getPortablePdbStreamOpt, PdbWriter nativePdbWriterOpt, String pdbPathOpt, Boolean metadataOnly, Boolean includePrivateMembers, Boolean isDeterministic, Boolean emitTestCoverageData, Nullable`1 privateKeyOpt, CancellationToken cancellationToken) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\Compilation\Compilation.cs:line 2927
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.CodeAnalysis.Compilation.SerializeToPeStream(CommonPEModuleBuilder moduleBeingBuilt, EmitStreamProvider peStreamProvider, EmitStreamProvider metadataPEStreamProvider, EmitStreamProvider pdbStreamProvider, Func`2 testSymWriterFactory, DiagnosticBag diagnostics, EmitOptions emitOptions, Nullable`1 privateKeyOpt, CancellationToken cancellationToken) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\Compilation\Compilation.cs:line 2826
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.CodeAnalysis.CommonCompiler.CompileAndEmit(TouchedFileLogger touchedFilesLogger, Compilation& compilation, ImmutableArray`1 analyzers, ImmutableArray`1 generators, ImmutableArray`1 additionalTextFiles, AnalyzerConfigSet analyzerConfigSet, ImmutableArray`1 sourceFileAnalyzerConfigOptions, ImmutableArray`1 embeddedTexts, DiagnosticBag diagnostics, CancellationToken cancellationToken, CancellationTokenSource& analyzerCts, Boolean& reportAnalyzer, AnalyzerDriver& analyzerDriver) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\CommandLine\CommonCompiler.cs:line 1205
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.CodeAnalysis.CommonCompiler.RunCore(TextWriter consoleOutput, ErrorLogger errorLogger, CancellationToken cancellationToken) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\CommandLine\CommonCompiler.cs:line 830
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Microsoft.CodeAnalysis.CommonCompiler.Run(TextWriter consoleOutput, CancellationToken cancellationToken) in C:\Users\jmise\Projects\Peachpie.Microsoft.CodeAnalysis\src\Compilers\Core\Portable\CommandLine\CommonCompiler.cs:line 699
1>C:\Users\mb\.nuget\packages\peachpie.net.sdk\1.0.23\build\Peachpie.NET.Core.Sdk.targets(245,5): error :    at Peachpie.NET.Sdk.Tools.BuildTask.Execute()
jakubmisek commented 2 years ago

this is caused by a PHP attribute (#[...]) containing an expression instead of a constant ... we'll check if there can be a better warning, or if the expressions can be resolved in compile-time

jakubmisek commented 1 year ago

Hi @matbech

We have added more detailed exception when this happens. My guess would be, there is a global constant in a PHP attribute #[...] that the compiler couldn't resolve.

Do you have the update error message with PeachPie 1.1.1 or newer?

matbech commented 1 year ago

I'm no longer seeing the error, but I'm not sure if I get the updated error message instead (there are too many). Thank you.

jakubmisek commented 1 year ago

good, thnk you for the update!