private static void FixDataFromIncorrectDocs(UnityApi unityApi, TypeResolver typeResolver) { // Documentation doesn't state that it's static, or has wrong types Console.WriteLine("Fixing incorrect documentation"); var type = unityApi.FindType("AssetModificationProcessor"); if (type != null) { // Not part of the actual documentation foreach (var function in type.FindEventFunctions("IsOpenForEdit")) { function.SetIsStatic(); function.SetReturnType(ApiType.Bool); var newParameter = new UnityApiParameter("assetPath", ApiType.String, string.Empty); function.UpdateParameter("arg1", newParameter); newParameter = new UnityApiParameter("message", ApiType.StringByRef, string.Empty); function.UpdateParameter("arg2", newParameter); } foreach (var function in type.FindEventFunctions("OnWillDeleteAsset")) { function.SetIsStatic(); function.SetReturnType(typeResolver.CreateApiType("UnityEditor.AssetDeleteResult")); var newParameter = new UnityApiParameter("assetPath", ApiType.String, string.Empty); function.UpdateParameter("arg1", newParameter); newParameter = new UnityApiParameter("options", new ApiType("UnityEditor.RemoveAssetOptions"), string.Empty); function.UpdateParameter("arg2", newParameter); } foreach (var function in type.FindEventFunctions("OnWillMoveAsset")) { function.SetIsStatic(); function.SetReturnType(typeResolver.CreateApiType("UnityEditor.AssetMoveResult")); var newParameter = new UnityApiParameter("sourcePath", ApiType.String, string.Empty); function.UpdateParameter("arg1", newParameter); newParameter = new UnityApiParameter("destinationPath", ApiType.String, string.Empty); function.UpdateParameter("arg2", newParameter); } } type = unityApi.FindType("AssetPostprocessor"); if (type != null) { // 2018.2 removes a UnityScript example which gave us the return type foreach (var function in type.FindEventFunctions("OnAssignMaterialModel")) { function.SetReturnType(typeResolver.CreateApiType("UnityEngine.Material")); } } }