From 6855bd28f8e87bb4a829ac03237b2b914324c688 Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Mon, 7 Aug 2017 14:03:42 -0700 Subject: [PATCH] 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 . --- .../src/fasta/kernel/kernel_shadow_ast.dart | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart index 60ed521aa41..e7312847d36 100644 --- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart @@ -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