Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration tool crashed trying to migrate the dartx package #44775

Closed
pinkfish opened this issue Jan 25, 2021 · 3 comments
Closed

Migration tool crashed trying to migrate the dartx package #44775

pinkfish opened this issue Jan 25, 2021 · 3 comments
Labels
area-migration (deprecated) Deprecated: this label is no longer actively used (was: issues with the `dart migrate` tool). P2 A bug or feature request we're likely to work on type-bug Incorrect behavior (everything from a crash to more subtle misbehavior)

Comments

@pinkfish
Copy link

Thank you for taking the time to file an issue!

This tracker is for issues related to:

If you aren't sure, file the issue here and we'll find the right home for it.
In your issue, please include:

Dart SDK version: 2.12.0-133.7.beta (beta) (Tue Jan 12 09:25:38 2021 +0100) on "macos_x64"
On Mac

Migrating /Users/david/development/dartx

See https://dart.dev/go/null-safety-migration for a migration guide.

Analyzing project...
[-----------------------------------------------------------------------------]No analysis issues found.

Generating migration suggestions...
[--\ ]Aborting migration due to an exception. This most likely is due to a
bug in the migration tool. Please consider filing a bug report at:

https://github.com/dart-lang/sdk/issues/new
Please include the SDK version (2.12.0-133.7.beta) in your bug report.

To attempt to perform migration anyway, you may re-run with
--ignore-exceptions.

Exception details:

UnimplementedError: Extension on R* Function()* (FunctionTypeImpl at offset 267 in /Users/david/development/dartx/test/function_test.dart (func.invoke())

#0 EdgeBuilder._unimplemented (package:nnbd_migration/src/edge_builder.dart:3181:5)
#1 EdgeBuilder.getOrComputeElementType (package:nnbd_migration/src/edge_builder.dart:270:11)
#2 EdgeBuilder.visitMethodInvocation (package:nnbd_migration/src/edge_builder.dart:1244:20)
#3 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7186:49)
#4 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#5 EdgeBuilder._handleAssignment (package:nnbd_migration/src/edge_builder.dart:2266:20)
#6 EdgeBuilder._handleInvocationArguments (package:nnbd_migration/src/edge_builder.dart:2862:7)
#7 EdgeBuilder.visitMethodInvocation (package:nnbd_migration/src/edge_builder.dart:1256:24)
#8 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7186:49)
#9 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#10 EdgeBuilder.visitExpressionStatement (package:nnbd_migration/src/edge_builder.dart:795:25)
#11 ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:3676:49)
#12 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#13 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#14 GeneralizingAstVisitor.visitStatement (package:analyzer/dart/ast/visitor.dart:517:39)
#15 GeneralizingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:165:31)
#16 BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#17 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#18 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#19 GeneralizingAstVisitor.visitFunctionBody (package:analyzer/dart/ast/visitor.dart:324:45)
#20 GeneralizingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:168:55)
#21 BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#22 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#23 EdgeBuilder.visitFunctionExpression. (package:nnbd_migration/src/edge_builder.dart:909:25)
#24 ScopedSet.doScoped (package:nnbd_migration/src/utilities/scoped_set.dart:44:13)
#25 EdgeBuilder.visitFunctionExpression (package:nnbd_migration/src/edge_builder.dart:907:28)
#26 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#27 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#28 EdgeBuilder._handleAssignment (package:nnbd_migration/src/edge_builder.dart:2266:20)
#29 EdgeBuilder._handleInvocationArguments (package:nnbd_migration/src/edge_builder.dart:2862:7)
#30 EdgeBuilder.visitMethodInvocation (package:nnbd_migration/src/edge_builder.dart:1256:24)
#31 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7186:49)
#32 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#33 EdgeBuilder.visitExpressionStatement (package:nnbd_migration/src/edge_builder.dart:795:25)
#34 ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:3676:49)
#35 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#36 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#37 GeneralizingAstVisitor.visitStatement (package:analyzer/dart/ast/visitor.dart:517:39)
#38 GeneralizingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:165:31)
#39 BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#40 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#41 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#42 GeneralizingAstVisitor.visitFunctionBody (package:analyzer/dart/ast/visitor.dart:324:45)
#43 GeneralizingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:168:55)
#44 BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#45 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#46 EdgeBuilder.visitFunctionExpression. (package:nnbd_migration/src/edge_builder.dart:909:25)
#47 ScopedSet.doScoped (package:nnbd_migration/src/utilities/scoped_set.dart:44:13)
#48 EdgeBuilder.visitFunctionExpression (package:nnbd_migration/src/edge_builder.dart:907:28)
#49 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#50 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#51 EdgeBuilder._handleAssignment (package:nnbd_migration/src/edge_builder.dart:2266:20)
#52 EdgeBuilder._handleInvocationArguments (package:nnbd_migration/src/edge_builder.dart:2862:7)
#53 EdgeBuilder.visitMethodInvocation (package:nnbd_migration/src/edge_builder.dart:1256:24)
#54 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7186:49)
#55 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#56 EdgeBuilder.visitExpressionStatement (package:nnbd_migration/src/edge_builder.dart:795:25)
#57 ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:3676:49)
#58 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#59 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#60 GeneralizingAstVisitor.visitStatement (package:analyzer/dart/ast/visitor.dart:517:39)
#61 GeneralizingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:165:31)
#62 BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#63 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#64 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#65 GeneralizingAstVisitor.visitFunctionBody (package:analyzer/dart/ast/visitor.dart:324:45)
#66 GeneralizingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:168:55)
#67 BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#68 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#69 EdgeBuilder.visitFunctionExpression. (package:nnbd_migration/src/edge_builder.dart:909:25)
#70 ScopedSet.doScoped (package:nnbd_migration/src/utilities/scoped_set.dart:44:13)
#71 EdgeBuilder.visitFunctionExpression (package:nnbd_migration/src/edge_builder.dart:907:28)
#72 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#73 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#74 EdgeBuilder._handleAssignment (package:nnbd_migration/src/edge_builder.dart:2266:20)
#75 EdgeBuilder._handleInvocationArguments (package:nnbd_migration/src/edge_builder.dart:2862:7)
#76 EdgeBuilder.visitMethodInvocation (package:nnbd_migration/src/edge_builder.dart:1256:24)
#77 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7186:49)
#78 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#79 EdgeBuilder.visitExpressionStatement (package:nnbd_migration/src/edge_builder.dart:795:25)
#80 ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:3676:49)
#81 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#82 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#83 GeneralizingAstVisitor.visitStatement (package:analyzer/dart/ast/visitor.dart:517:39)
#84 GeneralizingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:165:31)
#85 BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#86 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#87 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#88 GeneralizingAstVisitor.visitFunctionBody (package:analyzer/dart/ast/visitor.dart:324:45)
#89 GeneralizingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:168:55)
#90 BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#91 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#92 EdgeBuilder.visitFunctionExpression. (package:nnbd_migration/src/edge_builder.dart:909:25)
#93 ScopedSet.doScoped (package:nnbd_migration/src/utilities/scoped_set.dart:44:13)
#94 EdgeBuilder.visitFunctionExpression (package:nnbd_migration/src/edge_builder.dart:907:28)
#95 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#96 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#97 EdgeBuilder.visitFunctionDeclaration (package:nnbd_migration/src/edge_builder.dart:865:9)
#98 FunctionDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4866:49)
#99 EdgeBuilder._dispatch (package:nnbd_migration/src/edge_builder.dart:2148:24)
#100 EdgeBuilder.visitNode (package:nnbd_migration/src/edge_builder.dart:1300:9)
#101 GeneralizingAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:202:51)
#102 CompletenessTracker.visitCompilationUnit. (package:nnbd_migration/src/utilities/completeness_tracker.dart:52:24)
#103 PermissiveModeVisitor.reportExceptionsIfPermissive (package:nnbd_migration/src/utilities/permissive_mode.dart:26:24)
#104 CompletenessTracker.visitCompilationUnit (package:nnbd_migration/src/utilities/completeness_tracker.dart:43:5)
#105 CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#106 NullabilityMigrationImpl.processInput (package:nnbd_migration/src/nullability_migration_impl.dart:244:12)
#107 NonNullableFix.processUnit (package:nnbd_migration/src/front_end/non_nullable_fix.dart:153:15)
#108 _FixCodeProcessor.runLaterPhases. (package:nnbd_migration/migration_cli.dart:1134:19)
#109 _FixCodeProcessor.runLaterPhases. (package:nnbd_migration/migration_cli.dart:1132:28)
#110 _FixCodeProcessor.processResources (package:nnbd_migration/migration_cli.dart:1061:30)

#111 _FixCodeProcessor.runLaterPhases (package:nnbd_migration/migration_cli.dart:1132:5)

#112 MigrationCliRunner.run (package:nnbd_migration/migration_cli.dart:738:24)

#113 MigrateCommand.run (package:nnbd_migration/migration_cli.dart:185:7)

#114 CommandRunner.runCommand (package:args/command_runner.dart:196:13)

#115 DartdevRunner.runCommand (package:dartdev/dartdev.dart:188:18)

#116 runDartdev (package:dartdev/dartdev.dart:51:16)

#117 main (file:///opt/s/w/ir/cache/builder/src/third_party/dart/pkg/dartdev/bin/dartdev.dart:11:3)

@mraleph mraleph added the area-migration (deprecated) Deprecated: this label is no longer actively used (was: issues with the `dart migrate` tool). label Jan 26, 2021
@stereotype441 stereotype441 added P2 A bug or feature request we're likely to work on type-bug Incorrect behavior (everything from a crash to more subtle misbehavior) labels Jan 26, 2021
@stereotype441
Copy link
Member

Thanks for the bug report! I'm able to reproduce the problem using the following commands:

$ git clone git@github.com:pinkfish/dartx.git
$ cd dartx
$ git checkout d8fb660b49efef6fe1d81f43a60cc5e42c7c7e44
$ dart pub get
$ dart migrate --skip-import-check

(Note that --skip-import-check is probably not a good idea for a real migration but it was sufficient for reproducing the bug).

I was able to get a migration by adding the --ignore-exceptions flag. @pinkfish were you able to make progress using this flag?

Judging by the stack trace, the migration tool seems to be stumbling on a fairly uncommon code pattern (an extension whose extended type is a typedef), so I'm classifying this as a P2.

@pinkfish
Copy link
Author

pinkfish commented Jan 26, 2021 via email

@stereotype441
Copy link
Member

As of 1c7fe71, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.

If you still need help, or you believe this issue has been closed in error, please feel free to reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-migration (deprecated) Deprecated: this label is no longer actively used (was: issues with the `dart migrate` tool). P2 A bug or feature request we're likely to work on type-bug Incorrect behavior (everything from a crash to more subtle misbehavior)
Projects
None yet
Development

No branches or pull requests

3 participants