mirror of
https://github.com/FabInfra/capnproto-dotnetcore_Runtime.git
synced 2025-03-12 06:41:50 +01:00
Some fixes to make persistent.capnp compile
This commit is contained in:
parent
b5dd02c53f
commit
45a3f16426
File diff suppressed because it is too large
Load Diff
@ -8467,7 +8467,7 @@ namespace Capnproto_test.Capnp.Test
|
||||
}
|
||||
|
||||
[TypeId(0x8839ed86c9794287UL), Proxy(typeof(DeepNestInterfaceProxy<>)), Skeleton(typeof(DeepNestInterfaceSkeleton<>))]
|
||||
public interface IDeepNestInterface<TQuux> : IDisposable
|
||||
public interface IDeepNestInterface<TQuux> : IDisposable where TQuux : class
|
||||
{
|
||||
Task Call(CancellationToken cancellationToken_ = default);
|
||||
}
|
||||
@ -8599,7 +8599,7 @@ namespace Capnproto_test.Capnp.Test
|
||||
}
|
||||
|
||||
[TypeId(0xc9e749e8dd54da5cUL), Proxy(typeof(InterfaceProxy<>)), Skeleton(typeof(InterfaceSkeleton<>))]
|
||||
public interface IInterface<TQux> : IDisposable
|
||||
public interface IInterface<TQux> : IDisposable where TQux : class
|
||||
{
|
||||
Task<(TQux, Capnproto_test.Capnp.Test.TestGenerics<Capnproto_test.Capnp.Test.TestAllTypes, Capnproto_test.Capnp.Test.TestAnyPointer>)> Call(Capnproto_test.Capnp.Test.TestGenerics<TFoo, TBar>.Inner2<string> arg_, CancellationToken cancellationToken_ = default);
|
||||
}
|
||||
@ -9105,7 +9105,7 @@ namespace Capnproto_test.Capnp.Test
|
||||
}
|
||||
|
||||
[TypeId(0xdf9ccdeb81a704c9UL), Proxy(typeof(TestImplicitMethodParamsInGenericProxy<>)), Skeleton(typeof(TestImplicitMethodParamsInGenericSkeleton<>))]
|
||||
public interface ITestImplicitMethodParamsInGeneric<TV> : IDisposable
|
||||
public interface ITestImplicitMethodParamsInGeneric<TV> : IDisposable where TV : class
|
||||
{
|
||||
Task<Capnproto_test.Capnp.Test.TestGenerics<TT, TU>> Call<TT, TU>(TT foo, TU bar, CancellationToken cancellationToken_ = default)
|
||||
where TT : class where TU : class;
|
||||
@ -15412,7 +15412,7 @@ namespace Capnproto_test.Capnp.Test
|
||||
}
|
||||
|
||||
[TypeId(0xea72cc77253798cdUL), Proxy(typeof(TestAuthenticatedBootstrapProxy<>)), Skeleton(typeof(TestAuthenticatedBootstrapSkeleton<>))]
|
||||
public interface ITestAuthenticatedBootstrap<TVatId> : IDisposable
|
||||
public interface ITestAuthenticatedBootstrap<TVatId> : IDisposable where TVatId : class
|
||||
{
|
||||
Task<TVatId> GetCallerId(CancellationToken cancellationToken_ = default);
|
||||
}
|
||||
|
@ -70,7 +70,29 @@ namespace CapnpC.CSharp.Generator.Tests
|
||||
public void ThenTheGeneratedOutputMustMatchTheReference()
|
||||
{
|
||||
Assert.IsTrue(_result.IsSuccess, $"Tool invocation failed: {_result.Exception?.Message}");
|
||||
Assert.AreEqual(_referenceOutputContent, _result.GeneratedFiles.Single().GeneratedContent);
|
||||
string generated = _result.GeneratedFiles.Single().GeneratedContent;
|
||||
bool equals = _referenceOutputContent.Equals(generated);
|
||||
if (!equals)
|
||||
{
|
||||
string path = Path.ChangeExtension(Path.GetTempFileName(), ".capnp.cs");
|
||||
File.WriteAllText(path, generated);
|
||||
|
||||
string[] refLines = _referenceOutputContent.Split(Environment.NewLine);
|
||||
string[] actLines = generated.Split(Environment.NewLine);
|
||||
int mismatchLine = 0;
|
||||
|
||||
for (int i = 0; i < Math.Min(refLines.Length, actLines.Length); i++)
|
||||
{
|
||||
if (!refLines[i].Equals(actLines[i]))
|
||||
{
|
||||
mismatchLine = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Assert.Fail(
|
||||
$"Reference output does not match. Expected: <{_referenceOutputContent.Substring(0, 100)}...>, actual: <{generated.Substring(0, 100)}...>, see {path}, first mismatch line: {mismatchLine}");
|
||||
}
|
||||
}
|
||||
|
||||
[Then(@"the invocation must fail")]
|
||||
|
@ -206,7 +206,8 @@ namespace CapnpC.CSharp.Generator.CodeGen
|
||||
|
||||
if (def.GenericParameters.Count > 0)
|
||||
{
|
||||
return GenericName(name.Identifier).AddTypeArgumentListArguments();
|
||||
var args = Enumerable.Repeat(OmittedTypeArgument(), def.GenericParameters.Count);
|
||||
return GenericName(name.Identifier).AddTypeArgumentListArguments(args.ToArray());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -56,7 +56,7 @@ namespace CapnpC.CSharp.Generator.CodeGen
|
||||
{
|
||||
foreach (var arg in method.Params)
|
||||
{
|
||||
list.Add(Parameter(Identifier(arg.Name))
|
||||
list.Add(Parameter(Identifier(IdentifierRenamer.ToNonKeyword(arg.Name)))
|
||||
.WithType(_names.MakeTypeSyntax(arg.Type, method.DeclaringInterface, TypeUsage.DomainClass)));
|
||||
}
|
||||
}
|
||||
@ -108,7 +108,9 @@ namespace CapnpC.CSharp.Generator.CodeGen
|
||||
|
||||
if (type.GenericParameters.Count > 0)
|
||||
{
|
||||
ifaceDecl = ifaceDecl.AddTypeParameterListParameters(MakeTypeParameters(type).ToArray());
|
||||
ifaceDecl = ifaceDecl
|
||||
.AddTypeParameterListParameters(MakeTypeParameters(type).ToArray())
|
||||
.AddConstraintClauses(MakeTypeParameterConstraints(type).ToArray());
|
||||
}
|
||||
|
||||
if (type.Superclasses.Count == 0)
|
||||
@ -185,7 +187,7 @@ namespace CapnpC.CSharp.Generator.CodeGen
|
||||
yield return AssignmentExpression(
|
||||
SyntaxKind.SimpleAssignmentExpression,
|
||||
_names.GetCodeIdentifier(methodParam).IdentifierName,
|
||||
IdentifierName(methodParam.Name));
|
||||
IdentifierName(IdentifierRenamer.ToNonKeyword(methodParam.Name)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -461,7 +463,7 @@ namespace CapnpC.CSharp.Generator.CodeGen
|
||||
yield return AssignmentExpression(
|
||||
SyntaxKind.SimpleAssignmentExpression,
|
||||
_names.GetCodeIdentifier(arg).IdentifierName,
|
||||
IdentifierName(arg.Name));
|
||||
IdentifierName(IdentifierRenamer.ToNonKeyword(arg.Name)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,10 +8,6 @@
|
||||
<PackageReferenceVersion Condition="'$(PackageReferenceVersion)'==''">$(Version)*</PackageReferenceVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CapnpFiles Remove="capnp\persistent.capnp" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Capnp.Net.Runtime" Version="$(PackageReferenceVersion)" />
|
||||
<PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="$(PackageReferenceVersion)" />
|
||||
@ -30,6 +26,9 @@
|
||||
<WorkingDirectory>$(ProjectDir)</WorkingDirectory>
|
||||
<ImportPaths>$(ProjectDir);%(ImportPaths)</ImportPaths>
|
||||
</CapnpFiles>
|
||||
<CapnpFiles Update="capnp\persistent.capnp">
|
||||
<ImportPaths>$(ProjectDir);%(ImportPaths)</ImportPaths>
|
||||
</CapnpFiles>
|
||||
<CapnpFiles Update="capnp\rpc-twoparty.capnp">
|
||||
<WorkingDirectory>$(ProjectDir)</WorkingDirectory>
|
||||
<ImportPaths>$(ProjectDir);%(ImportPaths)</ImportPaths>
|
||||
|
@ -7,13 +7,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MsBuildGenerationTest", "Ms
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
AppVeyor|Any CPU = AppVeyor|Any CPU
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D2CFBABF-7028-4761-9B24-6054008F41A0}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D2CFBABF-7028-4761-9B24-6054008F41A0}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
|
||||
{D2CFBABF-7028-4761-9B24-6054008F41A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D2CFBABF-7028-4761-9B24-6054008F41A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D2CFBABF-7028-4761-9B24-6054008F41A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
|
Loading…
x
Reference in New Issue
Block a user