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

Named constructors have separate namespace #3040

Closed
peter-ahe-google opened this issue May 14, 2012 · 5 comments
Closed

Named constructors have separate namespace #3040

peter-ahe-google opened this issue May 14, 2012 · 5 comments
Assignees
Labels
area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). type-enhancement A request for a change that isn't a bug
Milestone

Comments

@peter-ahe-google
Copy link
Contributor

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.

@gbracha
Copy link
Contributor

gbracha commented May 14, 2012

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.
Removed Type-Defect label.
Added Type-Enhancement, Accepted labels.

@gbracha
Copy link
Contributor

gbracha commented May 29, 2012

Added this to the M1 milestone.

@gbracha
Copy link
Contributor

gbracha commented Jul 4, 2012

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.

@DartBot
Copy link

DartBot commented Aug 31, 2012

This comment was originally written by @mhausner


What about this case:

class A {
  foo() {...}
}

class B extends A {
  B.foo() {...}
}

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 ?

@gbracha
Copy link
Contributor

gbracha commented Aug 31, 2012

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.

@peter-ahe-google peter-ahe-google added Type-Enhancement area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). labels Aug 31, 2012
@peter-ahe-google peter-ahe-google added this to the M1 milestone Aug 31, 2012
@kevmoo kevmoo added type-enhancement A request for a change that isn't a bug and removed type-enhancement labels Mar 1, 2016
copybara-service bot pushed a commit that referenced this issue May 20, 2022
…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]>
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). type-enhancement A request for a change that isn't a bug
Projects
None yet
Development

No branches or pull requests

5 participants