Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[experiment2][dpg] do not convert enum client parameters into string #4468

Closed
wants to merge 5 commits into from

Conversation

archerzz
Copy link
Member

Description

Instead of checking the enum value type against protocol parameter type, we just not check types when building operation chain.

Checklist

To ensure a quick review and merge, please ensure:

  • The PR has a understandable title and description explaining the why and what.
  • The PR is opened in draft if not ready for review yet.
    • If opened in draft, please allocate sufficient time (24 hours) after moving out of draft for review
  • The branch is recent enough to not have merge conflicts upon creation.

Ready to Land?

  • Build is completely green
    • Submissions with test failures require tracking issue and approval of a CODEOWNER
  • At least one +1 review by a CODEOWNER
  • All -1 reviews are confirmed resolved by the reviewer
    • Override/Marking reviews stale must be discussed with CODEOWNERS first

@@ -498,7 +498,8 @@ public static bool IsIgnoredHeaderParameter(InputParameter operationParameter)

private Parameter BuildParameter(in InputParameter operationParameter, Type? typeOverride = null)
{
CSharpType type = typeOverride != null ? new CSharpType(typeOverride, operationParameter.Type.IsNullable) : _typeFactory.CreateType(operationParameter.Type);
CSharpType type = typeOverride != null ? new CSharpType(typeOverride, operationParameter.Type.IsNullable) :
operationParameter is { IsApiVersion: true, Type: InputEnumType enumType } ? _typeFactory.CreateType(enumType.EnumValueType) : _typeFactory.CreateType(operationParameter.Type);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Special handling of apiVersion

@@ -132,6 +133,9 @@ private ClientFields(IEnumerable<Parameter> parameters, InputAuth? authorization
public FieldDeclaration? GetFieldByParameter(Parameter parameter)
=> GetFieldByParameter(parameter.Name, parameter.Type);

public FieldDeclaration? GetFieldByName(string name)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provide this method for cases when we don't check type matching. I cannot remove GetFieldByPrarameter, since in some cases we still need to check the type. For example, NamesConflict test project provide a case when client parameter and query parameter have the same name. We actually rely on the type check to decide which should be used. Not sure if that's the best way to do.

Copy link
Contributor

Hi @archerzz. Thank you for your interest in helping to improve the Azure SDK experience and for your contribution. We've noticed that there hasn't been recent engagement on this pull request. If this is still an active work stream, please let us know by pushing some changes or leaving a comment. Otherwise, we'll close this out in 7 days.

@archerzz archerzz closed this Jun 4, 2024
@archerzz archerzz deleted the enum_client_field2 branch June 4, 2024 04:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-recent-activity There has been no recent activity on this issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant