Skip to content

Commit cac6309

Browse files
committed
Handle default type declarations with async methods
Added async handling for non-scalar/string type declarations in builder classes. Default cases now generate asynchronous method calls, with obsolete warnings suppressed where needed, improving code generation extensibility and robustness.
1 parent f859223 commit cac6309

4 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainBuilder.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ internal void CreateAssignment(ITypeDeclaration typeDeclaration, IDeclaration de
104104
case IStringTypeDeclaration stringTypeDeclaration:
105105
AddToSource($" plain.{declaration.Name} = {declaration.Name}.LastValue;");
106106
break;
107+
default:
108+
AddToSource($"#pragma warning disable CS0612\n");
109+
AddToSource($" plain.{declaration.Name} = await {declaration.Name}.{MethodNameNoac}Async();");
110+
AddToSource($"#pragma warning restore CS0612\n");
111+
break;
112+
107113
}
108114
}
109115

src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToOnlineBuilder.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ private void CreateAssignment(ITypeDeclaration typeDeclaration, IDeclaration dec
114114
AddToSource($" {declaration.Name}.LethargicWrite(plain.{declaration.Name});");
115115
AddToSource($"#pragma warning restore CS0612\n");
116116
break;
117+
default:
118+
AddToSource($"#pragma warning disable CS0612\n");
119+
AddToSource($" await this.{declaration.Name}.{MethodNameNoac}Async(plain.{declaration.Name});");
120+
AddToSource($"#pragma warning restore CS0612\n");
121+
break;
117122
}
118123
}
119124

src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToShadowBuilder.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ private void CreateAssignment(ITypeDeclaration typeDeclaration, IDeclaration dec
101101
case IStringTypeDeclaration stringTypeDeclaration:
102102
AddToSource($" {declaration.Name}.Shadow = plain.{declaration.Name};");
103103
break;
104+
default:
105+
AddToSource($" await this.{declaration.Name}.{MethodName}Async(plain.{declaration.Name});");
106+
break;
104107
}
105108
}
106109

src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainBuilder.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ internal void CreateAssignment(ITypeDeclaration typeDeclaration, IDeclaration de
100100
case IStringTypeDeclaration stringTypeDeclaration:
101101
AddToSource($" plain.{declaration.Name} = {declaration.Name}.Shadow;");
102102
break;
103+
default:
104+
AddToSource($" plain.{declaration.Name} = await {declaration.Name}.{MethodName}Async();");
105+
break;
103106
}
104107
}
105108

0 commit comments

Comments
 (0)