diff --git a/pkg/nnbd_migration/lib/src/edge_builder.dart b/pkg/nnbd_migration/lib/src/edge_builder.dart index 6a2c7d1cb91a..fdaa4d01c4e8 100644 --- a/pkg/nnbd_migration/lib/src/edge_builder.dart +++ b/pkg/nnbd_migration/lib/src/edge_builder.dart @@ -642,6 +642,7 @@ class EdgeBuilder extends GeneralizingAstVisitor @override DecoratedType visitFunctionDeclaration(FunctionDeclaration node) { + node.metadata.accept(this); if (_flowAnalysis != null) { // This is a local function. node.functionExpression.accept(this); diff --git a/pkg/nnbd_migration/test/edge_builder_test.dart b/pkg/nnbd_migration/test/edge_builder_test.dart index c1ff6ae472e7..aab2d74c2cf8 100644 --- a/pkg/nnbd_migration/test/edge_builder_test.dart +++ b/pkg/nnbd_migration/test/edge_builder_test.dart @@ -2077,6 +2077,15 @@ bar() { expect(type.returnType, isNotNull); } + test_function_metadata() async { + await analyze(''' +@deprecated +void f() {} +'''); + // No assertions needed; the AnnotationTracker mixin verifies that the + // metadata was visited. + } + test_functionDeclaration_expression_body() async { await analyze(''' int/*1*/ f(int/*2*/ i) => i/*3*/;