4697e3c8f6
Instead of simply throwing an exception when a compile-time error was discovered during constant evaluation, we report the error and continue transforming. This also collects a context, which can be used by error reporters to show users in which context an error occured. The reason for using an interface for reporting errors is to be able to report reasonable nice error messages, keep the transformation inside package:kernel and allow users of the transformation to possibly report nicer error message, e.g. by adding quotes of source positions (which will come in another CL). This makes it slightly verbose. Change-Id: I965cafc690dddb525b20368d03bb978e18a6ee58 Reviewed-on: https://dart-review.googlesource.com/52447 Commit-Queue: Martin Kustermann <kustermann@google.com> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>