Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@guilhermearaujo
Copy link
Contributor

There is a conflict when a class has a parameter named value
Example:

@genq
class Example with _$Example {
  factory Example({required int value}) = _Example;
}

Generates:

class _$ExampleCopyWithImpl implements $ExampleCopyWith {
  final _$Example value;

  _$ExampleCopyWithImpl(this.value);

  @override
  Example call({
    Object? value = genq,
  }) {
    return Example(
      value: value == genq ? value.value : value as int,
    );                             ^^^^^
  }
}

Which results in the error:
example.genq.dart:xx:yy: Error: The getter 'value' isn't defined for the class 'Object?'

The fixed output should use __value instead:

class _$ExampleCopyWithImpl implements $ExampleCopyWith {
  final _$Example __value;

  _$ExampleCopyWithImpl(this.__value);

  @override
  Example call({
    Object? value = genq,
  }) {
    return Example(
      value: value == genq ? __value.value : value as int,
    );
  }
}

@jankuss jankuss self-requested a review September 22, 2024 22:07
@jankuss jankuss merged commit ca8cdfa into jankuss:main Sep 22, 2024
8 checks passed
@jankuss
Copy link
Owner

jankuss commented Sep 22, 2024

Good catch, thank you for your contribution! This fix is included in the 0.5.1 release.

brew upgrade jankuss/genq/genq

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants