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

Second attempt to fix "not found" error for type vars in bounds #673

Closed
wants to merge 0 commits into from

Conversation

copybara-service[bot]
Copy link

@copybara-service copybara-service bot commented Jul 6, 2023

Second attempt to fix "not found" error for type vars in bounds

First attempt was #671
and I had to roll it back, since it caused breakages in two ways:

  1. Sometimes ParameterElement from type.parameters had enclosingElement
    set to null and we use that in one helper function. That was easy to
    fix, we could just pass methodElement to that function directly.
    It's probably correct that ParameterElement of a FunctionType
    doesn't link back to a MethodElement, but it's weird that sometimes
    it does, so it wasn't caught in the tests. I had to get rid of
    using type.parameters anyway because of the second problem.
  2. type.parameters don't contain parameters' default values (totally
    correct, since default values belong to methods, not to types), but
    that means we can't use them, since we do need default values.

So I ended up with a more hacky solution, that uses type.typeFormals
just to get correct references for method's type parameters, and then
uses typeParameters, returnType and parameters for the rest as
before.

Original commit description:

Use FunctionTypedElement.type while generating method overrides

Turns out FunctionTypedElement.typeParameters could be inconsistent
for MethodMembers returned by InheritanceManager3.getMember2.
FunctionTypedElement.type.typeFormals seem to be always good, but
we have to also use type.parameters and type.returnType instead
of just parameters and returnType in this case.

Fixes #658

@copybara-service copybara-service bot changed the title Rollback of "Use FunctionTypedElement.type while generating method overrides" First attempt was https://github.com/dart-lang/mockito/pull/671 Jul 6, 2023
@copybara-service copybara-service bot changed the title First attempt was https://github.com/dart-lang/mockito/pull/671 Second attempt to fix "not found" error for type vars in bounds Jul 7, 2023
@copybara-service copybara-service bot force-pushed the test_545934516 branch 3 times, most recently from b6bd57e to 2d4817d Compare July 11, 2023 16:08
@copybara-service copybara-service bot closed this Jul 12, 2023
@copybara-service copybara-service bot deleted the test_545934516 branch July 12, 2023 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Code generation error on nested generic bounded type arguments
0 participants