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

[Augmentation] Wrong error in the analyzer when augmenting a factory constructor #57027

Open
sgrekhov opened this issue Nov 5, 2024 · 0 comments
Labels
area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. feature-augmentations Implementation of the augmentations feature P2 A bug or feature request we're likely to work on

Comments

@sgrekhov
Copy link
Contributor

sgrekhov commented Nov 5, 2024

class C {
  C();
  factory C.foo() = C;
}

augment class C {
  augment C();
  augment factory C.foo(); // Errors, see below
}

main() {
  print(C);
}

Analyzer (with --enable-experiment=macros) produces two errors here.

  error • augmenting_constructors_A03_t04.dart:54:19 • The constructor with name 'foo' is already defined. Try renaming one of the constructors. • duplicate_constructor
  error • augmenting_constructors_A03_t04.dart:54:26 • A function body must be provided. Try adding a function body. • missing_function_body

If to update the test and to remove the factory keyword from the augmentation then the error disappears.

class C {
  C();
  factory C.foo() = C;
}

augment class C {
  augment C();
  augment C.foo(); // Ok, no error
}

Dart SDK version: 3.7.0-86.0.dev (dev) (Wed Oct 30 17:03:22 2024 -0700) on "windows_x64"

@sgrekhov sgrekhov added area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. feature-augmentations Implementation of the augmentations feature labels Nov 5, 2024
@scheglov scheglov added the P2 A bug or feature request we're likely to work on label Nov 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. feature-augmentations Implementation of the augmentations feature P2 A bug or feature request we're likely to work on
Projects
None yet
Development

No branches or pull requests

2 participants