From 321fa95040fedf4f84e1c26d611d2aa9cbd7369f Mon Sep 17 00:00:00 2001 From: Morgan Hoarau Date: Wed, 25 Mar 2026 14:59:04 +0000 Subject: [PATCH 1/3] Update APIVerificationTests.cs --- .../Tests/InputSystem/APIVerificationTests.cs | 38 ++++++------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/Assets/Tests/InputSystem/APIVerificationTests.cs b/Assets/Tests/InputSystem/APIVerificationTests.cs index c2d9ac2d33..5a2cb60f81 100644 --- a/Assets/Tests/InputSystem/APIVerificationTests.cs +++ b/Assets/Tests/InputSystem/APIVerificationTests.cs @@ -551,45 +551,29 @@ public class OpenVRControllerWMR : UnityEngine.InputSystem.XR.XRController public class OpenVROculusTouchController : UnityEngine.InputSystem.XR.XRControllerWithRumble public class ViveWand : UnityEngine.InputSystem.XR.XRControllerWithRumble ")] - // API scraper in 1.0.0 emitted incomplete default argument expressions for these overloads. + // New scraper version (com.unity.coding:0.1.0-preview.26) includes default argument expressions for these overloads. [Property("Exclusions", @"1.0.0 public static string GetBindingDisplayString(this InputAction action, int bindingIndex, InputBinding.DisplayStringOptions options = ); public static string GetBindingDisplayString(this InputAction action, InputBinding bindingMask, InputBinding.DisplayStringOptions options = ); public static string GetBindingDisplayString(this InputAction action, InputBinding.DisplayStringOptions options = , string group = default(string)); public static string GetBindingDisplayString(this InputAction action, int bindingIndex, out string deviceLayoutName, out string controlPath, InputBinding.DisplayStringOptions options = ); public string ToDisplayString(InputBinding.DisplayStringOptions options = , InputControl control = default(InputControl)); - public string ToDisplayString(out string deviceLayoutName, out string controlPath, InputBinding.DisplayStringOptions options = , InputControl control = default(InputControl)); - DontIncludeInteractions = 4, - DontOmitDevice = 2, - DontUseShortDisplayNames = 1, - IgnoreBindingOverrides = 8, - OmitDevice = 2, - UseShortNames = 4, - BufferedBytes = 256, - Constant = 1, - NonLinear = 16, - NoPreferred = 32, - NullState = 64, - Relative = 4, - Variable = 2, - Volatile = 128, - Wrap = 8, - public FourCC(char a, char b = , char c = , char d = ) {} + public string ToDisplayString(out string deviceLayoutName, out string controlPath, InputBinding.DisplayStringOptions options = , InputControl control = default(InputControl)); public static string ToHumanReadableString(string path, InputControlPath.HumanReadableStringOptions options = InputControlPath.HumanReadableStringOptions.None, InputControl control = default(InputControl)); - public static string ToHumanReadableString(string path, out string deviceLayoutName, out string controlPath, InputControlPath.HumanReadableStringOptions options = InputControlPath.HumanReadableStringOptions.None, InputControl control = default(InputControl)); - public class InputStateHistory : InputStateHistory, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable where TValue : struct, new() + public static string ToHumanReadableString(string path, out string deviceLayoutName, out string controlPath, InputControlPath.HumanReadableStringOptions options = InputControlPath.HumanReadableStringOptions.None, InputControl control = default(InputControl)); + public UnityEngine.InputSystem.LowLevel.InputStateHistory RecordStateChange(UnityEngine.InputSystem.InputControl control, TValue value, double time = -1d); + ")] + // New scraper version (com.unity.coding:0.1.0-preview.26) is able to qualify nested types inside a generic class. + [Property("Exclusions", @"1.0.0 public UnityEngine.InputSystem.LowLevel.InputStateHistory this[int index] { get; set; } public UnityEngine.InputSystem.LowLevel.InputStateHistory AddRecord(UnityEngine.InputSystem.LowLevel.InputStateHistory record); public System.Collections.Generic.IEnumerator> GetEnumerator(); - public UnityEngine.InputSystem.LowLevel.InputStateHistory RecordStateChange(UnityEngine.InputSystem.InputControl control, TValue value, double time = -1d); public struct Record : System.IEquatable> public UnityEngine.InputSystem.LowLevel.InputStateHistory next { get; } - public UnityEngine.InputSystem.LowLevel.InputStateHistory owner { get; } public UnityEngine.InputSystem.LowLevel.InputStateHistory previous { get; } public void CopyFrom(UnityEngine.InputSystem.LowLevel.InputStateHistory record); public bool Equals(UnityEngine.InputSystem.LowLevel.InputStateHistory other); - public SteamHandle(ulong handle) {} - public static ulong op_Explicit(UnityEngine.InputSystem.Steam.SteamHandle handle); + public class InputStateHistory : InputStateHistory, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable where TValue : struct, new() ")] // Api scraper seems to be unstable with fields with default values, sometimes "= 0;" appears (locally) and sometimes (on CI) doesn't. [Property("Exclusions", @"1.0.0 @@ -606,10 +590,12 @@ public SteamHandle(ulong handle) {} // Allow Key.IMESelected to be marked as Obsolete [ScopedExclusionProperty("1.0.0", "UnityEngine.InputSystem", "public enum Key", "IMESelected = 111,")] -#if !UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT // Steam support is conditional (#if UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT) and absent when // the steam plugin is not installed, so all Steam types are excluded from the comparison. [Property("Exclusions", @"1.0.0 + public SteamHandle(ulong handle) {} + public static ulong op_Explicit(UnityEngine.InputSystem.Steam.SteamHandle handle); +#if !UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT namespace UnityEngine.InputSystem.Steam public interface ISteamControllerAPI public void ActivateActionSet(UnityEngine.InputSystem.Steam.SteamHandle controllerHandle, UnityEngine.InputSystem.Steam.SteamHandle actionSetHandle); @@ -653,8 +639,8 @@ public static class SteamIGAConverter public static string GenerateInputDeviceFromSteamIGA(string vdf, string namespaceAndClassName); public static string GetSteamControllerInputType(InputAction action); public static System.Collections.Generic.Dictionary ParseVDF(string vdf); - ")] #endif + ")] public void API_MinorVersionsHaveNoBreakingChanges() { From 05da1c2eda491cd9fa458b3d32c65e6f0d672ec5 Mon Sep 17 00:00:00 2001 From: Morgan Hoarau Date: Wed, 25 Mar 2026 16:19:00 +0000 Subject: [PATCH 2/3] Update APIVerificationTests.cs --- Assets/Tests/InputSystem/APIVerificationTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Assets/Tests/InputSystem/APIVerificationTests.cs b/Assets/Tests/InputSystem/APIVerificationTests.cs index 5a2cb60f81..1ad71e5cb0 100644 --- a/Assets/Tests/InputSystem/APIVerificationTests.cs +++ b/Assets/Tests/InputSystem/APIVerificationTests.cs @@ -589,13 +589,14 @@ public struct Record : System.IEquatable handle); + ")] #if !UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT + [Property("Exclusions", @"1.0.0 namespace UnityEngine.InputSystem.Steam public interface ISteamControllerAPI public void ActivateActionSet(UnityEngine.InputSystem.Steam.SteamHandle controllerHandle, UnityEngine.InputSystem.Steam.SteamHandle actionSetHandle); @@ -639,8 +640,8 @@ public static class SteamIGAConverter public static string GenerateInputDeviceFromSteamIGA(string vdf, string namespaceAndClassName); public static string GetSteamControllerInputType(InputAction action); public static System.Collections.Generic.Dictionary ParseVDF(string vdf); -#endif ")] +#endif public void API_MinorVersionsHaveNoBreakingChanges() { From 3775e30f121cbe6f268a38bc59ba19cc3a8ac543 Mon Sep 17 00:00:00 2001 From: Morgan Hoarau Date: Wed, 25 Mar 2026 16:54:40 +0000 Subject: [PATCH 3/3] format --- Assets/Tests/InputSystem/APIVerificationTests.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/Tests/InputSystem/APIVerificationTests.cs b/Assets/Tests/InputSystem/APIVerificationTests.cs index 1ad71e5cb0..3076be2e7b 100644 --- a/Assets/Tests/InputSystem/APIVerificationTests.cs +++ b/Assets/Tests/InputSystem/APIVerificationTests.cs @@ -558,10 +558,10 @@ public class ViveWand : UnityEngine.InputSystem.XR.XRControllerWithRumble public static string GetBindingDisplayString(this InputAction action, InputBinding.DisplayStringOptions options = , string group = default(string)); public static string GetBindingDisplayString(this InputAction action, int bindingIndex, out string deviceLayoutName, out string controlPath, InputBinding.DisplayStringOptions options = ); public string ToDisplayString(InputBinding.DisplayStringOptions options = , InputControl control = default(InputControl)); - public string ToDisplayString(out string deviceLayoutName, out string controlPath, InputBinding.DisplayStringOptions options = , InputControl control = default(InputControl)); + public string ToDisplayString(out string deviceLayoutName, out string controlPath, InputBinding.DisplayStringOptions options = , InputControl control = default(InputControl)); public static string ToHumanReadableString(string path, InputControlPath.HumanReadableStringOptions options = InputControlPath.HumanReadableStringOptions.None, InputControl control = default(InputControl)); - public static string ToHumanReadableString(string path, out string deviceLayoutName, out string controlPath, InputControlPath.HumanReadableStringOptions options = InputControlPath.HumanReadableStringOptions.None, InputControl control = default(InputControl)); - public UnityEngine.InputSystem.LowLevel.InputStateHistory RecordStateChange(UnityEngine.InputSystem.InputControl control, TValue value, double time = -1d); + public static string ToHumanReadableString(string path, out string deviceLayoutName, out string controlPath, InputControlPath.HumanReadableStringOptions options = InputControlPath.HumanReadableStringOptions.None, InputControl control = default(InputControl)); + public UnityEngine.InputSystem.LowLevel.InputStateHistory RecordStateChange(UnityEngine.InputSystem.InputControl control, TValue value, double time = -1d); ")] // New scraper version (com.unity.coding:0.1.0-preview.26) is able to qualify nested types inside a generic class. [Property("Exclusions", @"1.0.0