Remove hack from KernelTypeInferrer.inferInitializer.

Now that all constructor initializers created by BodyBuilder implement
KernelInitializer, we no longer need a hack to skip initializers that
don't.

R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2992423002 .
This commit is contained in:
Paul Berry 2017-08-07 14:03:42 -07:00
parent 41170b0a15
commit 6855bd28f8

View file

@ -2195,19 +2195,14 @@ class KernelTypeInferrer extends TypeInferrerImpl {
@override
void inferInitializer(Initializer initializer) {
if (initializer is KernelInitializer) {
// Use polymorphic dispatch on [KernelInitializer] to perform whatever
// kind of type inference is correct for this kind of initializer.
// TODO(paulberry): experiment to see if dynamic dispatch would be better,
// so that the type hierarchy will be simpler (which may speed up "is"
// checks).
return initializer._inferInitializer(this);
} else {
// Encountered an initializer type for which type inference is not yet
// implemented, so just skip it for now.
// TODO(paulberry): once the BodyBuilder uses shadow classes for
// everything, this case should no longer be needed.
}
assert(initializer is KernelInitializer);
// Use polymorphic dispatch on [KernelInitializer] to perform whatever
// kind of type inference is correct for this kind of initializer.
// TODO(paulberry): experiment to see if dynamic dispatch would be better,
// so that the type hierarchy will be simpler (which may speed up "is"
// checks).
KernelInitializer kernelInitializer = initializer;
return kernelInitializer._inferInitializer(this);
}
@override