Skip to content

Write specification for generic function type syntax #27970

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

Closed
2 tasks done
floitschG opened this issue Dec 2, 2016 · 13 comments
Closed
2 tasks done

Write specification for generic function type syntax #27970

floitschG opened this issue Dec 2, 2016 · 13 comments
Assignees
Labels
area-specification (deprecated) Deprecated: use area-language and a language- label. P1 A high priority bug; for example, a single project is unusable or has many test failures

Comments

@floitschG
Copy link
Contributor

floitschG commented Dec 2, 2016

This is the spec issue for #27527.

  • 1.50
  • 2.0
@floitschG floitschG added the area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). label Dec 2, 2016
@floitschG floitschG added this to the 1.50 milestone Dec 2, 2016
@eernstg
Copy link
Member

eernstg commented Dec 5, 2016

I started writing an informal specification following the style we have used for generic method syntax, initializing formal access, etc. Shared on Google Drive. Will be public when it has matured a bit.

@dgrove
Copy link
Contributor

dgrove commented Dec 12, 2016

@eernstg can you please provide an update on the spec?

@eernstg
Copy link
Member

eernstg commented Dec 13, 2016

I believe the spec is usable for implementation at this point. It was adjusted yesterday such that it describes a generally available T Function<...>(...) syntax (as opposed to the previous version of the grammar where that syntax could only be used in one particular location). I think we can make the spec available to the public when we have enough of an implementation to be able to declare with reasonable certainty that there are no surprises, e.g., when it comes to parsing conflicts.

@munificent munificent added area-specification (deprecated) Deprecated: use area-language and a language- label. and removed area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). labels Dec 13, 2016
@munificent
Copy link
Member

Can we close this bug then?

@eernstg
Copy link
Member

eernstg commented Dec 14, 2016

The spec is usable for implementation, but not finished. In particular, the static analysis part (which is unfinished) prevents the new typedefs from being recursive, and similar things that I've been looking into today and will continue to work on tomorrow, but this won't stop anyone from implementing the parsing part.

@munificent
Copy link
Member

Oh, wait. You're referring to the "informal specification", right?

This issue is about the actual real final language specification (i.e. the .tex file) changes. For the informal spec, it just needs to be made public and linked to from the metabug.

@eernstg
Copy link
Member

eernstg commented Dec 15, 2016

OK, but we haven't changed the language specification file at all on this topic. I've been referring to the informal spec everywhere in this issue.

We need to have two sub-issues to distinguish explicitly between the informal spec ("when we know what to do") and the formal spec (which is less time critical, because the tool teams can implement based on the informal spec, and we even want that because their feedback may cause some adjustments).

@mit-mit
Copy link
Member

mit-mit commented Dec 15, 2016

Let's keep this bug for the real language spec, I have linked the informal spec from the meta issue.

@munificent
Copy link
Member

We need to have two sub-issues to distinguish explicitly between the informal spec ("when we know what to do")

So far, we haven't filed tracking issues for that task. I think the assumption is that the language team won't open a metabug or expect people to start working on any of the subtasks until we've given them a written proposal (or "informal spec" or however you want to call it).

@dgrove dgrove modified the milestones: 1.50, 1.23 Feb 14, 2017
@mit-mit
Copy link
Member

mit-mit commented Mar 15, 2017

@floitschG did we ever complete the spec for this?

@leafpetersen leafpetersen removed this from the 1.23 milestone Mar 21, 2017
@eernstg
Copy link
Member

eernstg commented Mar 23, 2017

There is no formal spec yet. The informal spec is here.

@eernstg eernstg added the P1 A high priority bug; for example, a single project is unusable or has many test failures label May 30, 2017
@eernstg
Copy link
Member

eernstg commented May 30, 2017

With respect to the bullet point '2.0', this issue is blocked until work on a specification of Dart 2 is initiated.

@eernstg
Copy link
Member

eernstg commented Nov 16, 2017

Work is ongoing: This CL adds a Dart 2 specification of generic functions to 'dartLangSpec.tex' (except that error is still spelled 'warning', and subtype rules are left untouched in their Dart 1.x form). That effort addresses #27529 and subsumes this issue (because the generic method syntax is the same for Dart 1.x and for Dart 2), hence closing this one.

@eernstg eernstg closed this as completed Nov 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-specification (deprecated) Deprecated: use area-language and a language- label. P1 A high priority bug; for example, a single project is unusable or has many test failures
Projects
None yet
Development

No branches or pull requests

7 participants