# Feature tests for assert in initializer lists

This directory was created in order to hold tests pertaining to the Dart
feature which allows an assertion (`assert(...)`) to occur in the
initializer list of a constructor, including `const` constructors.  For
more details, please check the
[language specification update](https://github.com/dart-lang/sdk/commit/609d26a2274ccde0f74725f4df7e081ebc8ea020).
