* add a dev/dartdoc.dart script to generate docs for the packages/ packages
* remove description
* rename readme
* change to using --include-external
* move docs to dev/docs
Using .of() to call mutating setters is not great practice since it ties
parts of the app together in ways that prevent reuse and composition.
Since people are now using the gallery app to copy from, let's use the
better practice of using callbacks.
* Enable the lint require documentation.
* Track how many public Flutter members lack docs
* Rename the .analysis_options file
This makes Atom happier in the flutter_tools package.
- Create a FlutterErrorDetails struct-like class that describes an
exception along with more details that aren't in the exception, like
where it was caught and what was going on when it was caught.
- Provide a FlutterError static API for handling these objects:
- FlutterError.onError which is called whenever Flutter catches an
error.
- FlutterError.reportError() which handles an error.
- FlutterError.dumpErrorToConsole() which is the default behavior
for onError.
- Removes all the existing exception handler callbacks.
- Replaces all the existing places that described exceptions using
debugPrint with calls to FlutterError.reportError().
- Extend lockState() to also catch exceptions, so that we catch
exceptions that happen during finalizers.
- Make the test framework catch errors and treat them as failures.
- Provide a mechanism to override this behavior in the test framework.
- Make the tests that used to depend on the exception handler
callbacks use this new mechanism.
- Make pump() also support the phase argument.
- Improve some tests using these new features.
Fixes#2356, #2988, #2985, #2220.
Previously we weren't padding the top and the bottom of drop-down menus but the
spec says these should have 8.0 pixel of padding, the same as popup menus.
Fixes#2683
The performLayout and build callsite are highly megamorphic because they
dispatch into a large number of clients. However, for a given caller, the
callee is always of the same type, which means the megamorphic lookup exactly
factors by the caller. We can speed up the dispatch by capturing a closure at
initialization and then monomorphically dispatching through the closure.