Skip to content

Commit d52b7d8

Browse files
committed
try to update the visitor to get it working but failed
1 parent 9b23bb3 commit d52b7d8

File tree

55 files changed

+1592
-5140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1592
-5140
lines changed

eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/src/Visitors/PaginationVisitor.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,24 @@ internal class PaginationVisitor : ScmLibraryVisitor
1717
{
1818
if (method.EnclosingType.Name.AsSpan().Contains("CollectionResult".AsSpan(), StringComparison.Ordinal) && method.Signature.Name.Equals("AsPages"))
1919
{
20-
var doWhileStatement = statements.OfType<DoWhileStatement>().FirstOrDefault();
20+
var doWhileStatement = statements.OfType<WhileStatement>().FirstOrDefault();
2121
if (doWhileStatement is not null)
2222
{
2323
var body = doWhileStatement.Body;
24+
var bodyStatements = body.ToList();
25+
// find the yield return statement
26+
var yieldReturnStatementIndex = bodyStatements.FindIndex(s => s is YieldReturnStatement);
27+
if (yieldReturnStatementIndex >= 0)
28+
{
29+
// this statement looks like: yield return Page<T>.FromValues((IReadOnlyList<T>)((TListResult)response).Value, nextPage?.AbsoluteUri, response);
30+
// we need to replace the cast part `(TListResult)response` to a call to `FromResponse` method
31+
var yieldReturnStatement = (YieldReturnStatement)bodyStatements[yieldReturnStatementIndex];
32+
var value = yieldReturnStatement.Value as InvokeMethodExpression;
33+
if (value != null)
34+
{
35+
var first = value.Arguments[0] as CastExpression;
36+
}
37+
}
2438

2539
// get the response to model casting expression
2640
var responseToModelStatement = body.OfType<ExpressionStatement>().Skip(1).FirstOrDefault();

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/BarsGetAsyncCollectionResult.cs

Lines changed: 0 additions & 91 deletions
This file was deleted.

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/BarsGetAsyncCollectionResultOfT.cs

Lines changed: 9 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/BarsGetCollectionResult.cs

Lines changed: 0 additions & 90 deletions
This file was deleted.

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/BarsGetCollectionResultOfT.cs

Lines changed: 7 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/FoosGetAsyncCollectionResult.cs

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)