-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Named constructors have separate namespace #3040
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
Comments
I agree this is undesirable. Nevertheless, I'm tentatively categorizing it as an enhancement rather than a defect (a defect is an inconsistency/error in the spec). I agree we should try and fix it. Set owner to @gbracha. |
Added this to the M1 milestone. |
Section 7.6 now reads: A constructor name always begins with the name of its immediately enclosing class, and may optionally be followed by a dot and an identifier id. It is a compile-time error if id is the name of a member declared in the immediately enclosing class. I think this resolves the issue in the spirit of a single namespace. Added Done label. |
This comment was originally written by @mhausner What about this case: class A { class B extends A { The above text would allow this, but what is the semantics? Would the instance method foo, which is inherited by B, get overridden by the named constructor B.foo ? |
In this case, nothing has changed from previous behavior. Constructors never override anything and are not inherited. So A's foo() and the constructor in B do not interact. |
…25 revisions) https://dart.googlesource.com/dartdoc/+log/334072b0cad4..cf0685a2d1ce 2022-05-19 103135467+sealesj@users.noreply.github.com Create scorecards-analysis.yml (#3032) 2022-05-18 srawlins@google.com Add the docs.dart.js.map file to published package (#3042) 2022-05-17 parlough@gmail.com Reintroduce query param search (#3026) 2022-05-17 srawlins@google.com Include docs.dart.js in published code (#3040) 2022-05-17 parlough@gmail.com Optimize built js (#3028) 2022-05-17 srawlins@google.com Use dart run instead of deprecated dart pub run (#3038) 2022-05-17 timmaffett@gmail.com fix exception for empty dartdoc_options.yaml file (#3034) 2022-05-16 oss@simonbinder.eu Fix build config (#3035) 2022-05-02 goderbauer@google.com Drop version back to 5.1.0 (#3031) 2022-05-02 goderbauer@google.com Fixed: YouTube directive respects width/height argument (#3030) 2022-04-19 devoncarew@gmail.com Update pubspec.yaml (#3025) 2022-04-12 srawlins@google.com Remove dead field commentRefs, which is always empty (#3021) 2022-04-12 devoncarew@gmail.com make the converted web frontend follow Dart conventions (#3020) 2022-04-11 devoncarew@gmail.com convert lib/resources/script.js to Dart (#3016) 2022-04-11 49699333+dependabot[bot]@users.noreply.github.com Bump actions/cache from 3.0.1 to 3.0.2 (#3019) 2022-04-10 devoncarew@gmail.com rename the CI script (#3017) 2022-04-08 49699333+dependabot[bot]@users.noreply.github.com Bump actions/cache from 2 to 3.0.1 (#3014) 2022-04-08 49699333+dependabot[bot]@users.noreply.github.com Bump markdown from 4.0.1 to 5.0.0 (#3015) 2022-04-08 srawlins@google.com Move many static declarations to top-level; avoid RegExp (#3009) 2022-04-08 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 2 to 3 (#3013) 2022-04-07 devoncarew@gmail.com Add a web frontend (#3011) 2022-04-07 devoncarew@gmail.com enable dependabot deps checks (#3012) 2022-04-07 srawlins@google.com Do not store the AstNode on ModelNode; eagerly grab the source indexes (#3008) 2022-04-07 srawlins@google.com Create a .pubignore in order to skip testing files from publish check (#3010) 2022-03-29 srawlins@google.com Bump to version 5.1.0 (#3006) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/dart-doc-dart-sdk Please CC dart-ecosystem-gardener@grotations.appspotmail.com on the revert to ensure that a human is aware of the problem. To file a bug in Dart Documentation Generator: https://github.com/dart-lang/dartdoc/issues To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Tbr: dart-ecosystem-gardener@grotations.appspotmail.com Change-Id: I3467a27d6947c43f7f41acbb2959d72863fd8a34 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245483 Commit-Queue: Devon Carew <devoncarew@google.com> Reviewed-by: Devon Carew <devoncarew@google.com>
Consider this class:
class Foo {
Foo.bar();
static bar() => new Foo.bar();
}
This allows you to write:
var a = Foo.bar();
var b = new Foo.bar();
This doesn't seem to be in the spirit of what we set out to achieve when it comes to avoiding multiple name spaces.
The text was updated successfully, but these errors were encountered: