C#: Output async keyword for async methods (and suppress AsyncStateMachine)
This commit is contained in:
@@ -35,6 +35,7 @@ namespace Il2CppInspector.Outputs
|
|||||||
private const string CGAttribute = "System.Runtime.CompilerServices.CompilerGeneratedAttribute";
|
private const string CGAttribute = "System.Runtime.CompilerServices.CompilerGeneratedAttribute";
|
||||||
private const string FBAttribute = "System.Runtime.CompilerServices.FixedBufferAttribute";
|
private const string FBAttribute = "System.Runtime.CompilerServices.FixedBufferAttribute";
|
||||||
private const string ExtAttribute = "System.Runtime.CompilerServices.ExtensionAttribute";
|
private const string ExtAttribute = "System.Runtime.CompilerServices.ExtensionAttribute";
|
||||||
|
private const string AsyncAttribute = "System.Runtime.CompilerServices.AsyncStateMachineAttribute";
|
||||||
private const string DMAttribute = "System.Reflection.DefaultMemberAttribute";
|
private const string DMAttribute = "System.Reflection.DefaultMemberAttribute";
|
||||||
|
|
||||||
// Assembly attributes we have already emitted
|
// Assembly attributes we have already emitted
|
||||||
@@ -621,7 +622,8 @@ namespace Il2CppInspector.Outputs
|
|||||||
var writer = new StringBuilder();
|
var writer = new StringBuilder();
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
writer.Append(method.CustomAttributes.Where(a => a.AttributeType.FullName != ExtAttribute).OrderBy(a => a.AttributeType.Name)
|
writer.Append(method.CustomAttributes.Where(a => a.AttributeType.FullName != ExtAttribute && a.AttributeType.FullName != AsyncAttribute)
|
||||||
|
.OrderBy(a => a.AttributeType.Name)
|
||||||
.ToString(scope, prefix + "\t", emitPointer: !SuppressMetadata, mustCompile: MustCompile));
|
.ToString(scope, prefix + "\t", emitPointer: !SuppressMetadata, mustCompile: MustCompile));
|
||||||
|
|
||||||
// IL2CPP doesn't seem to retain return type attributes
|
// IL2CPP doesn't seem to retain return type attributes
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017-2020 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
|
Copyright 2017-2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty
|
||||||
Copyright 2020 Robert Xiao - https://robertxiao.ca
|
Copyright 2020 Robert Xiao - https://robertxiao.ca
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
@@ -285,6 +285,10 @@ namespace Il2CppInspector.Reflection
|
|||||||
if (Name == "op_Explicit")
|
if (Name == "op_Explicit")
|
||||||
modifiers.Append("explicit ");
|
modifiers.Append("explicit ");
|
||||||
|
|
||||||
|
// Async depends on a compiler-generated attribute
|
||||||
|
if (GetCustomAttributes("System.Runtime.CompilerServices.AsyncStateMachineAttribute").Any())
|
||||||
|
modifiers.Append("async ");
|
||||||
|
|
||||||
// Will include a trailing space
|
// Will include a trailing space
|
||||||
return modifiers.ToString();
|
return modifiers.ToString();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user