dart-sdk/docs/language
Erik Ernst 5af9844382 Language specification reorganization.
---------------- NEW description (old description shown at end):

This CL is now a reorganization, problem fixing, clarifying update
to dartLangSpec.tex which was created as part of the work on the
rules for call method extraction. That is, all the call method
extraction specific elements have been _deleted_ from this CL
(they will reappear as a separate CL later). This CL is now only
performing "general clean-up work" which is needed in order to
perform many kinds of updates (including call method extraction,
but also anything else where the dynamic semantics depends on the
static analysis & desugaring).

------------------------------------------------ OLD description

Introduced rules for call method extraction.

The previous update to dartLangSpec.tex dealt with invocations, but
omitted the transformation whereby `e` becomes `e.call` when `e` has
a type which is a class with a `call` method and the context expects
a value of type `Function` or of a function type. This CL adds some
rules dealing with that and introduces a concept for the transformation
itself.

One part is missing for the initial patch set: There are no rules
specifying that call method extraction should be applied to actual
arguments. The problem is that static checking of actual arguments
to various invocations (function expression invocation, ordinary
method invocation, super invocation, etc.etc.) seems to be "delegated"
partially to section `Binding Actuals to Formals`, but that section
never defines the syntax for the function which is being invoked and
it is in general rather dynamic in nature. So I'm not quite sure
that the references to static checking at the end of that section
are located optimally.

Some adjustments may therefor be needed before we can specify this
particular feature for actual arguments.

Change-Id: Ia2ab6f16cd50e10a3c467722035f0dc4adb50587
Reviewed-on: https://dart-review.googlesource.com/51323
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-09-17 11:39:24 +00:00
..
informal Fix typo in int-to-double.md 2018-09-12 12:47:15 +00:00
.gitignore Clarify that global/local/static functions can also be closurized 2018-05-04 13:57:15 +00:00
Dart.g Introduced support for metadata on enum values 2018-05-09 08:27:08 +00:00
dart.sty Language specification reorganization. 2018-09-17 11:39:24 +00:00
dartLangSpec.tex Language specification reorganization. 2018-09-17 11:39:24 +00:00
Makefile Specify behavior of e?.v++ and e?.v-- 2015-06-11 15:01:06 -07:00