commit | 3e3459b0abedde9269d585759b142f6271dd39bc | [log] [tgz] |
---|---|---|
author | Alexander Markov <alexmarkov@google.com> | Fri Aug 24 15:55:05 2018 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri Aug 24 15:55:05 2018 +0000 |
tree | 656e42837d1203a8a8e1a809e20a0a9bb741278d | |
parent | 0a29264117fd4b5734defbb0f577655bce8cff3b [diff] |
[vm/kernel/bytecode] Use default type args (bounds) in generic functions This CL adds checking of number of passed function type arguments into prologue of generic functions in bytecode. If type arguments are not passed, then default type arguments (instantiated bounds) are used. This mimics IL generated in StreamingFlowGraphBuilder::BuildDefaultTypeHandling. In order to implement this check, a new bytecode instruction JumpIfNotZeroTypeArgs is added to bytecode generator and interpreter. Fixes language_2/function_apply_generic2_test in bytecode mode. Change-Id: I70901c16b8bfc5f86623d51fccaf50f8969c587e Reviewed-on: https://dart-review.googlesource.com/71387 Reviewed-by: RĂ©gis Crelier <regis@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.