diff --git a/src/serde/IDeserialize.cs b/src/serde/IDeserialize.cs index 61feeac..a34e2c7 100644 --- a/src/serde/IDeserialize.cs +++ b/src/serde/IDeserialize.cs @@ -1,12 +1,6 @@ using System; -using System.Collections.Generic; -using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text; namespace Serde; @@ -97,8 +91,8 @@ public interface IDeserializeCollection { int? SizeOpt { get; } - bool TryReadValue(ISerdeInfo typeInfo, TProxy deserialize, [MaybeNullWhen(false)] out T next) - where TProxy : IDeserialize; + bool TryReadValue(ISerdeInfo typeInfo, D deserialize, [MaybeNullWhen(false)] out T next) + where D : IDeserialize; } public interface IDeserializeType @@ -116,7 +110,7 @@ public interface IDeserializeType /// int TryReadIndex(ISerdeInfo map, out string? errorName); - T ReadValue(int index, IDeserialize deserialize); + T ReadValue(int index, D deserialize) where D : IDeserialize; void SkipValue(); @@ -141,7 +135,7 @@ public static class IDeserializeTypeExt public static T ReadValue(this IDeserializeType deserializeType, int index) where TProvider : IDeserializeProvider { - return deserializeType.ReadValue(index, TProvider.DeserializeInstance); + return deserializeType.ReadValue>(index, TProvider.DeserializeInstance); } } @@ -157,9 +151,9 @@ public interface IDeserializer : IDisposable T ReadAny(IDeserializeVisitor v) where T : class; - T? ReadNullableRef(TProxy proxy) + T? ReadNullableRef(D deserialize) where T : class - where TProxy : IDeserialize; + where D : IDeserialize; bool ReadBool(); char ReadChar(); diff --git a/src/serde/json/JsonDeserializer.cs b/src/serde/json/JsonDeserializer.cs index 559af56..e6f63bc 100644 --- a/src/serde/json/JsonDeserializer.cs +++ b/src/serde/json/JsonDeserializer.cs @@ -147,7 +147,7 @@ void IDisposable.Dispose() partial class JsonDeserializer : IDeserializeType { - T IDeserializeType.ReadValue(int index, IDeserialize d) + T IDeserializeType.ReadValue(int index, D d) { ReadColon(); return d.Deserialize(this); diff --git a/test/Serde.Generation.Test/test_output/WrapperTests.ExplicitInvalidGenericWrapper/FinalDiagnostics.verified.txt b/test/Serde.Generation.Test/test_output/WrapperTests.ExplicitInvalidGenericWrapper/FinalDiagnostics.verified.txt index 37ff09a..1d19733 100644 --- a/test/Serde.Generation.Test/test_output/WrapperTests.ExplicitInvalidGenericWrapper/FinalDiagnostics.verified.txt +++ b/test/Serde.Generation.Test/test_output/WrapperTests.ExplicitInvalidGenericWrapper/FinalDiagnostics.verified.txt @@ -1,13 +1,13 @@ [ { - "Id": "CS0311", + "Id": "CS7036", "Title": "", "Severity": "Error", "WarningLevel": "0", "Location": "SerdeGenerator/Serde.SerdeImplRoslynGenerator/Container.IDeserialize.cs: (23,52)-(23,79)", - "HelpLink": "https://msdn.microsoft.com/query/roslyn.query?appId=roslyn&k=k(CS0311)", - "MessageFormat": "The type '{3}' cannot be used as type parameter '{2}' in the generic type or method '{0}'. There is no implicit reference conversion from '{3}' to '{1}'.", - "Message": "The type 'Proxy' cannot be used as type parameter 'TProvider' in the generic type or method 'IDeserializeTypeExt.ReadValue(IDeserializeType, int)'. There is no implicit reference conversion from 'Proxy' to 'Serde.IDeserializeProvider'.", + "HelpLink": "https://msdn.microsoft.com/query/roslyn.query?appId=roslyn&k=k(CS7036)", + "MessageFormat": "There is no argument given that corresponds to the required parameter '{0}' of '{1}'", + "Message": "There is no argument given that corresponds to the required parameter 'deserialize' of 'IDeserializeType.ReadValue(int, D)'", "Category": "Compiler" } ] \ No newline at end of file