• Hixie's avatar
    Improve exceptions and asserts for rendering lib. · 1a0484cc
    Hixie authored
    * Use actual exceptions rather than assertions containing code
      containing strings when trying to give messages to authors.
    * Introduce RenderingError which is an AssertionError that takes a
      string argument, to support the above.
    * Provide a BoxDimensions.hasBoundedWidth/hasBoundedHeight API.
    * Document BoxDimensions.isNormalized.
    * Provide more useful information when we assert isNormalized and find
      that it is false.
    * When finding the size is infinite, crawl the tree to figure out which
      render box is likely responsible for the infinite constraints.
    * Provide more information when size doesn't match the constraints.
    * Provide more information when intrinsic dimension methods violate the
      constraints.
    * Only spam a huge amount of information for the first exception from
      the rendering library. I've noticed a lot of people looking at the
      last exception printed rather than the first and that's very
      misleading -- after the rendering library hits an exception, all bets
      are off regarding what'll happen in the future. All kinds of asserts
      might fire.
    * Improve docs around the debug methods and flags for the above.
    * Make Block default to have no children. Previously, giving no children
      crashed with a confusing message about a null deref in an assert.
    1a0484cc
scrollable.dart 25.3 KB