Skip to content

Commit 8a4dd31

Browse files
committed
add resource name into classes
enable futures.wit test
1 parent 056ef0f commit 8a4dd31

File tree

7 files changed

+62
-32
lines changed

7 files changed

+62
-32
lines changed

crates/csharp/src/function.rs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,14 +1073,20 @@ impl Bindgen for FunctionBindgen<'_, '_> {
10731073
interop_name = format!("Imports.{interop_name}");
10741074
}
10751075

1076-
let mut resource_type_name = String::new();
1077-
if let FunctionKind::Method(resource_type_id) = self.kind {
1078-
resource_type_name = format!(
1079-
".{}",
1080-
self.interface_gen.csharp_gen.all_resources[resource_type_id].name.to_upper_camel_case()
1081-
);
1082-
}
1083-
1076+
let resource_type_name = match self.kind {
1077+
FunctionKind::Method(resource_type_id) |
1078+
FunctionKind::Static(resource_type_id) |
1079+
FunctionKind::Constructor(resource_type_id) => {
1080+
format!(
1081+
".{}",
1082+
self.interface_gen.csharp_gen.all_resources[resource_type_id]
1083+
.name
1084+
.to_upper_camel_case()
1085+
)
1086+
}
1087+
_ => String::new(),
1088+
};
1089+
10841090
uwriteln!(
10851091
self.src,
10861092
"{assignment} {interop_name}{resource_type_name}.{func_name}WasmInterop.wasmImport{func_name}({operands});"

crates/csharp/src/interface.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ impl InterfaceGenerator<'_> {
813813
resource_type_name.unwrap()
814814
}
815815
else {
816-
format!("{}Impl.{export_name}", interface_name.strip_prefix("I").unwrap())
816+
format!("{}Impl", interface_name.strip_prefix("I").unwrap())
817817
};
818818

819819
uwriteln!(

crates/test/src/csharp.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ impl LanguageMethods for Csharp {
4545
name,
4646
"resources-with-streams.wit"
4747
| "resources-with-futures.wit"
48-
| "futures.wit"
4948
| "streams.wit"
5049
| "error-context.wit"
5150
| "resource-fallible-constructor.wit"

tests/runtime-async/async/simple-future/runner.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
using System;
22
using System.Runtime.InteropServices;
33
using System.Diagnostics;
4-
using RunnerWorld.wit.imports.my.test;
4+
using RunnerWorld.wit.Imports.my.test;
55
using RunnerWorld;
66

77
public class Program
88
{
99
public static async Task Main(string[] args)
1010
{
1111
{
12-
var (reader, writer) = II.ReadFutureVoidNew();
12+
var (reader, writer) = IIImports.ReadFutureVoidNew();
1313

1414
var writeTask = writer.Write();
1515
Debug.Assert(!writeTask.IsCompleted);
1616

17-
var task = II.ReadFuture(reader);
17+
var task = IIImports.ReadFuture(reader);
1818
Debug.Assert(task.IsCompleted);
1919

20-
var set = II.WaitableSetNew();
21-
II.Join(writer, set);
20+
var set = IIImports.WaitableSetNew();
21+
IIImports.Join(writer, set);
2222

2323
var ev = new EventWaitable();
24-
var status = II.WaitableSetWait(set);
24+
var status = IIImports.WaitableSetWait(set);
2525
Debug.Assert(status.Event == EventCode.FutureWrite);
2626
Debug.Assert(status.Waitable == writer.Handle);
2727
Debug.Assert(status.Status.IsCompleted);
@@ -32,19 +32,19 @@ public static async Task Main(string[] args)
3232
}
3333

3434
{
35-
var (reader, writer) = II.DropFutureVoidNew();
35+
var (reader, writer) = IIImports.DropFutureVoidNew();
3636

3737
var writeTask = writer.Write();
3838
Debug.Assert(!writeTask.IsCompleted);
3939

40-
var task = II.DropFuture(reader);
40+
var task = IIImports.DropFuture(reader);
4141
Debug.Assert(task.IsCompleted);
4242

43-
var set = II.WaitableSetNew();
44-
II.Join(writer, set);
43+
var set = IIImports.WaitableSetNew();
44+
IIImports.Join(writer, set);
4545

4646
var ev = new EventWaitable();
47-
var status = II.WaitableSetWait(set);
47+
var status = IIImports.WaitableSetWait(set);
4848
Debug.Assert(status.Event == EventCode.FutureWrite);
4949
Debug.Assert(status.Waitable == writer.Handle);
5050
Debug.Assert(status.Status.IsDropped);

tests/runtime-async/async/simple-future/test.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System.Diagnostics;
22

3-
namespace TestWorld.wit.exports.my.test
3+
namespace TestWorld.wit.Exports.my.test
44
{
5-
public class IImpl : II
5+
public class IExportsImpl : IIExports
66
{
77
public static Task ReadFuture(FutureReader reader)
88
{

tests/runtime-async/async/simple-import-params-results/runner.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
using System;
22
using System.Runtime.InteropServices;
33
using System.Diagnostics;
4-
using RunnerWorld.wit.imports.a.b;
4+
using RunnerWorld.wit.Imports.a.b;
55
using System.Text;
66

77
public class Program
88
{
99
public static async Task Main(string[] args)
1010
{
11-
var t = II.OneArgument(1);
11+
var t = IIImports.OneArgument(1);
1212
Debug.Assert(t.IsCompletedSuccessfully);
1313

14-
var tOneResult = II.OneResult();
14+
var tOneResult = IIImports.OneResult();
1515
Debug.Assert(tOneResult.IsCompletedSuccessfully);
1616
Debug.Assert(tOneResult.Result == 2);
1717

18-
var tOneArgumentAndResult = II.OneArgumentAndResult(3);
18+
var tOneArgumentAndResult = IIImports.OneArgumentAndResult(3);
1919
Debug.Assert(tOneArgumentAndResult.IsCompletedSuccessfully);
2020
Debug.Assert(tOneArgumentAndResult.Result == 4);
2121

22-
var tTwoArguments = II.TwoArguments(5, 6);
22+
var tTwoArguments = IIImports.TwoArguments(5, 6);
2323
Debug.Assert(tTwoArguments.IsCompletedSuccessfully);
2424

25-
var tTwoArgumentsAndResult = II.TwoArgumentsAndResult(7, 8);
25+
var tTwoArgumentsAndResult = IIImports.TwoArgumentsAndResult(7, 8);
2626
Debug.Assert(tTwoArgumentsAndResult.IsCompletedSuccessfully);
2727
Debug.Assert(tTwoArgumentsAndResult.Result == 9);
2828
}

tests/runtime-async/async/simple-import-params-results/test.cs

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using System.Diagnostics;
2-
using TestWorld.wit.exports.a.b;
2+
using TestWorld.wit.Exports.a.b;
33

4-
namespace TestWorld.wit.exports.a.b
4+
namespace TestWorld.wit.Exports.a.b
55
{
6-
public class IImpl : II
6+
public class IExportsImpl : IIExports
77
{
88
public static async Task OneArgument(uint x)
99
{
@@ -33,5 +33,30 @@ public static async Task<uint> TwoArgumentsAndResult(uint x, uint y)
3333
Debug.Assert(y == 8);
3434
return 9;
3535
}
36+
37+
public static int OneArgumentCallback()
38+
{
39+
throw new NotImplementedException();
40+
}
41+
42+
public static int OneResultCallback()
43+
{
44+
throw new NotImplementedException();
45+
}
46+
47+
public static int OneArgumentAndResultCallback()
48+
{
49+
throw new NotImplementedException();
50+
}
51+
52+
public static int TwoArgumentsCallback()
53+
{
54+
throw new NotImplementedException();
55+
}
56+
57+
public static int TwoArgumentsAndResultCallback()
58+
{
59+
throw new NotImplementedException();
60+
}
3661
}
3762
}

0 commit comments

Comments
 (0)