-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Named constructors have separate namespace #3040
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 [email protected] Create scorecards-analysis.yml (#3032) 2022-05-18 [email protected] Add the docs.dart.js.map file to published package (#3042) 2022-05-17 [email protected] Reintroduce query param search (#3026) 2022-05-17 [email protected] Include docs.dart.js in published code (#3040) 2022-05-17 [email protected] Optimize built js (#3028) 2022-05-17 [email protected] Use dart run instead of deprecated dart pub run (#3038) 2022-05-17 [email protected] fix exception for empty dartdoc_options.yaml file (#3034) 2022-05-16 [email protected] Fix build config (#3035) 2022-05-02 [email protected] Drop version back to 5.1.0 (#3031) 2022-05-02 [email protected] Fixed: YouTube directive respects width/height argument (#3030) 2022-04-19 [email protected] Update pubspec.yaml (#3025) 2022-04-12 [email protected] Remove dead field commentRefs, which is always empty (#3021) 2022-04-12 [email protected] make the converted web frontend follow Dart conventions (#3020) 2022-04-11 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] Add a web frontend (#3011) 2022-04-07 [email protected] enable dependabot deps checks (#3012) 2022-04-07 [email protected] Do not store the AstNode on ModelNode; eagerly grab the source indexes (#3008) 2022-04-07 [email protected] Create a .pubignore in order to skip testing files from publish check (#3010) 2022-03-29 [email protected] 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 [email protected] 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: [email protected] Change-Id: I3467a27d6947c43f7f41acbb2959d72863fd8a34 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245483 Commit-Queue: Devon Carew <[email protected]> Reviewed-by: Devon Carew <[email protected]>
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: