dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.2k stars 1.57k forks source link

Extension Type Compile Error with Icon Tree Shaking #55111

Open getBoolean opened 7 months ago

getBoolean commented 7 months ago

Issue

Compiling a Flutter app for Android, iOS, and MacOS fails with the below exception. The compile succeeds with icon tree shaking disabled (ie, either disabled with --no-tree-shake-icons or by compiling in debug mode). While icon tree shaking is from the Flutter CLI tool, the exception seems to indicate this is a Dart bug.

The extension type also must be imported manually, as the IDE won't auto-import it with the assist. (edit: this is https://github.com/dart-lang/sdk/issues/54657)

Exception logs (Click to expand) ``` ╰─❯ flutter build apk --release Target aot_android_asset_bundle failed: IconTreeShakerException: ConstFinder failure: Unhandled exception: Reference to package:flutter_extension_type_repro/age_rating.dart::AgeRating is not bound to an AST node. An extension type declaration was expected #0 Reference.asExtensionTypeDeclaration (package:kernel/canonical_name.dart:579:7) #1 ExtensionType.extensionTypeDeclaration (package:kernel/ast.dart:11971:41) #2 ExtensionType.visitChildren (package:kernel/ast.dart:12084:5) #3 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1727:10) #4 VisitorDefault.defaultDartType (package:kernel/visitor.dart:1524:39) #5 DartTypeVisitorDefaultMixin.visitExtensionType (package:kernel/visitor.dart:804:47) #6 ExtensionType.accept (package:kernel/ast.dart:12074:14) #7 Field.visitChildren (package:kernel/ast.dart:2526:10) #8 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1727:10) #9 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39) #10 TreeVisitorDefault.defaultMember (package:kernel/visitor.dart:626:35) #11 MemberVisitorDefaultMixin.visitField (package:kernel/visitor.dart:413:31) #12 Field.accept (package:kernel/ast.dart:2514:40) #13 visitList (package:kernel/ast.dart:14886:14) #14 Class.visitChildren (package:kernel/ast.dart:1500:5) #15 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1727:10) #16 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39) #17 TreeVisitorDefaultMixin.visitClass (package:kernel/visitor.dart:556:31) #18 _ConstVisitor.visitClass (package:kernel/const_finder.dart:132:11) #19 Class.accept (package:kernel/ast.dart:1461:38) #20 visitList (package:kernel/ast.dart:14886:14) #21 Library.visitChildren (package:kernel/ast.dart:596:5) #22 ConstFinder.findInstances (package:kernel/const_finder.dart:208:15) #23 main (file:///C:/b/s/w/ir/cache/builder/src/flutter/tools/const_finder/bin/main.dart:103:41) #24 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:295:33) #25 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12) To disable icon tree shaking, pass --no-tree-shake-icons to the requested flutter build command FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileFlutterBuildRelease'. > Process 'command 'C:\Users\Boolean\.puro\envs\stable\flutter\bin\flutter.bat'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 11s Running Gradle task 'assembleRelease'... 12.6s Gradle task assembleRelease failed with exit code 1 ```
Exception logs with verbose enabled (Click to expand) ``` ╰─❯ flutter build apk --release -v [ +162 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update. [ +4 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update. [ +4 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ +55 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update. [ ] Artifact Instance of 'GradleWrapper' is not required, skipping update. [ +5 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update. [ ] Artifact Instance of 'FlutterSdk' is not required, skipping update. [ ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update. [ ] Artifact Instance of 'PubDependencies' is not required, skipping update. [ +114 ms] Skipping pub get: version match. [ +135 ms] Generating B:\dev\GitHub\flutter_extension_type_repro\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java [ +48 ms] executing: C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr\bin\java -version [ +112 ms] Exit code 0 from: C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr\bin\java -version [ ] openjdk version "17.0.9" 2023-10-17 OpenJDK Runtime Environment (build 17.0.9+0--11185874) OpenJDK 64-Bit Server VM (build 17.0.9+0--11185874, mixed mode) [ +1 ms] executing: C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr\bin\java -version [ +106 ms] Exit code 0 from: C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr\bin\java -version [ ] openjdk version "17.0.9" 2023-10-17 OpenJDK Runtime Environment (build 17.0.9+0--11185874) OpenJDK 64-Bit Server VM (build 17.0.9+0--11185874, mixed mode) [ +10 ms] executing: C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr\bin\java --version [ +112 ms] Exit code 0 from: C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr\bin\java --version [ ] openjdk 17.0.9 2023-10-17 OpenJDK Runtime Environment (build 17.0.9+0--11185874) OpenJDK 64-Bit Server VM (build 17.0.9+0--11185874, mixed mode) [ +16 ms] Using gradle from B:\dev\GitHub\flutter_extension_type_repro\android\gradlew.bat. [ +1 ms] Running Gradle task 'assembleRelease'... [ +3 ms] executing: [B:\dev\GitHub\flutter_extension_type_repro\android/] B:\dev\GitHub\flutter_extension_type_repro\android\gradlew.bat --full-stacktrace --info -Pverbose=true -Ptarget-platform=android-arm,android-arm64,android-x64 -Ptarget=lib\main.dart -Pbase-application-name=android.app.Application -Pdart-obfuscation=false -Ptrack-widget-creation=true -Ptree-shake-icons=true assembleRelease [ +572 ms] Initialized native services in: C:\Users\Boolean\.gradle\native [ ] Initialized jansi services in: C:\Users\Boolean\.gradle\native [ +111 ms] Welcome to Gradle 7.6.3! [ ] Here are the highlights of this release: [ ] - Added support for Java 19. [ ] - Introduced `--rerun` flag for individual task rerun. [ ] - Improved dependency block for test suites to be strongly typed. [ ] - Added a pluggable system for Java toolchains provisioning. [ ] For more details see https://docs.gradle.org/7.6.3/release-notes.html [ ] Received JVM installation metadata from 'C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr': {JAVA_HOME=C:\Users\Boolean\AppData\Local\Programs\Android Studio\jbr, JAVA_VERSION=17.0.9, JAVA_VENDOR=JetBrains s.r.o., RUNTIME_NAME=OpenJDK Runtime Environment, RUNTIME_VERSION=17.0.9+0--11185874, VM_NAME=OpenJDK 64-Bit Server VM, VM_VERSION=17.0.9+0--11185874, VM_VENDOR=JetBrains s.r.o., OS_ARCH=amd64} [ +400 ms] The client will now receive all logging from the daemon (pid: 44960). The daemon log file: C:\Users\Boolean\.gradle\daemon\7.6.3\daemon-44960.out.log [ ] Starting 18th build in daemon [uptime: 30 mins 29.511 secs, performance: 100%] [ ] Using 16 worker leases. [ ] Now considering [B:\dev\GitHub\flutter_extension_type_repro\android, C:\Users\Boolean\.puro\envs\stable\flutter\packages\flutter_tools\gradle, C:\Users\Boolean\.puro\envs\master\flutter\packages\flutter_tools\gradle, C:\Users\Boolean\.puro\envs\beta\flutter\packages\flutter_tools\gradle] as hierarchies to watch [ +1 ms] Watching 4 directory hierarchies to track changes [ ] Watching the file system is configured to be enabled if available [ ] File system watching is active [ ] Starting Build [ ] Now considering [C:\Users\Boolean\.puro\envs\stable\flutter\packages\flutter_tools\gradle, B:\dev\GitHub\flutter_extension_type_repro\android, C:\Users\Boolean\.puro\envs\master\flutter\packages\flutter_tools\gradle, C:\Users\Boolean\.puro\envs\beta\flutter\packages\flutter_tools\gradle] as hierarchies to watch [ ] Watching 4 directory hierarchies to track changes [ ] > Configure project :gradle [ ] Evaluating project ':gradle' using build file 'C:\Users\Boolean\.puro\envs\stable\flutter\packages\flutter_tools\gradle\build.gradle.kts'. [ ] Caching disabled for Kotlin DSL accessors for project ':gradle' because: [ ] Build cache is disabled [ ] Skipping Kotlin DSL accessors for project ':gradle' as it is up-to-date. [ ] Resolve mutations for :gradle:compileJava (Thread[Execution worker,5,main]) started. [ ] :gradle:compileJava (Thread[Execution worker Thread 12,5,main]) started. [ ] > Task :gradle:compileJava NO-SOURCE [ ] Skipping task ':gradle:compileJava' as it has no source files and no previous output files. [ ] Resolve mutations for :gradle:compileGroovy (Thread[Execution worker Thread 12,5,main]) started. [ ] :gradle:compileGroovy (Thread[Execution worker Thread 12,5,main]) started. [ +83 ms] > Task :gradle:compileGroovy UP-TO-DATE [ ] Caching disabled for task ':gradle:compileGroovy' because: [ ] Build cache is disabled [ ] Skipping task ':gradle:compileGroovy' as it is up-to-date. [ ] Resolve mutations for :gradle:pluginDescriptors (Thread[Execution worker Thread 12,5,main]) started. [ ] :gradle:pluginDescriptors (Thread[Execution worker Thread 6,5,main]) started. [ ] > Task :gradle:pluginDescriptors UP-TO-DATE [ ] Caching disabled for task ':gradle:pluginDescriptors' because: [ +1 ms] Build cache is disabled [ ] Skipping task ':gradle:pluginDescriptors' as it is up-to-date. [ ] Resolve mutations for :gradle:processResources (Thread[Execution worker Thread 6,5,main]) started. [ ] :gradle:processResources (Thread[Execution worker Thread 10,5,main]) started. [ ] > Task :gradle:processResources UP-TO-DATE [ ] Caching disabled for task ':gradle:processResources' because: [ ] Build cache is disabled [ ] Skipping task ':gradle:processResources' as it is up-to-date. [ ] Resolve mutations for :gradle:classes (Thread[Execution worker Thread 10,5,main]) started. [ ] :gradle:classes (Thread[Execution worker Thread 10,5,main]) started. [ ] > Task :gradle:classes UP-TO-DATE [ ] Skipping task ':gradle:classes' as it has no actions. [ ] Resolve mutations for :gradle:jar (Thread[Execution worker Thread 4,5,main]) started. [ ] :gradle:jar (Thread[Execution worker Thread 4,5,main]) started. [ ] > Task :gradle:jar UP-TO-DATE [ ] Caching disabled for task ':gradle:jar' because: [ ] Build cache is disabled [ ] Skipping task ':gradle:jar' as it is up-to-date. [ +85 ms] Settings evaluated using settings file 'B:\dev\GitHub\flutter_extension_type_repro\android\settings.gradle'. [ ] Projects loaded. Root project using build file 'B:\dev\GitHub\flutter_extension_type_repro\android\build.gradle'. [ ] Included projects: [root project 'android', project ':app'] [ ] > Configure project :app [ ] Evaluating project ':app' using build file 'B:\dev\GitHub\flutter_extension_type_repro\android\app\build.gradle'. [ ] Using Kotlin Gradle Plugin gradle70 variant [ ] Parsed shrinker version: 3.3.70 [ ] > Configure project : [ ] Evaluating root project 'android' using build file 'B:\dev\GitHub\flutter_extension_type_repro\android\build.gradle'. [ ] All projects evaluated. [ ] Task name matched 'assembleRelease' [ ] Selected primary task 'assembleRelease' from project : [ +106 ms] WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 34 [ ] This Android Gradle plugin (7.3.0) was tested up to compileSdk = 33 [ ] This warning can be suppressed by adding [ ] android.suppressUnsupportedCompileSdk=34 [ ] to this project's gradle.properties [ ] The build will continue, but you are strongly encouraged to update your project to [ ] use a newer Android Gradle Plugin that has been tested with compileSdk = 34 [ ] Tasks to be executed: [task ':app:buildKotlinToolingMetadata', task ':app:compileFlutterBuildRelease', task ':app:packLibsflutterBuildRelease', task ':app:preBuild', task ':app:preReleaseBuild', task ':app:compileReleaseAidl', task ':app:compileReleaseRenderscript', task ':app:generateReleaseBuildConfig', task ':app:checkReleaseAarMetadata', task ':app:cleanMergeReleaseAssets', task ':app:mergeReleaseShaders', task ':app:compileReleaseShaders', task ':app:generateReleaseAssets', task ':app:mergeReleaseAssets', task ':app:copyFlutterAssetsRelease', task ':app:generateReleaseResValues', task ':app:mapReleaseSourceSetPaths', task ':app:generateReleaseResources', task ':app:mergeReleaseResources', task ':app:createReleaseCompatibleScreenManifests', task ':app:extractDeepLinksRelease', task ':app:processReleaseMainManifest', task ':app:processReleaseManifest', task ':app:processReleaseManifestForPackage', task ':app:processReleaseResources', task ':app:compileReleaseKotlin', task ':app:javaPreCompileRelease', task ':app:compileReleaseJavaWithJavac', task ':app:extractProguardFiles', task ':app:lintVitalAnalyzeRelease', task ':app:lintVitalReportRelease', task ':app:lintVitalRelease', task ':app:mergeReleaseJniLibFolders', task ':app:mergeReleaseNativeLibs', task ':app:stripReleaseDebugSymbols', task ':app:extractReleaseNativeSymbolTables', task ':app:mergeReleaseNativeDebugMetadata', task ':app:mergeReleaseArtProfile', task ':app:checkReleaseDuplicateClasses', task ':app:mergeReleaseGeneratedProguardFiles', task ':app:processReleaseJavaRes', task ':app:mergeReleaseJavaResource', task ':app:minifyReleaseWithR8', task ':app:compileReleaseArtProfile', task ':app:compressReleaseAssets', task ':app:processApplicationManifestReleaseForBundle', task ':app:bundleReleaseResources', task ':app:shrinkReleaseRes', task ':app:optimizeReleaseResources', task ':app:collectReleaseDependencies', task ':app:sdkReleaseDependencyData', task ':app:validateSigningRelease', task ':app:writeReleaseAppMetadata', task ':app:writeReleaseSigningConfigVersions', task ':app:packageRelease', task ':app:createReleaseApkListingFileRedirect', task ':app:assembleRelease'] [ +2 ms] Tasks that were excluded: [] [ ] Resolve mutations for :app:buildKotlinToolingMetadata (Thread[Execution worker Thread 13,5,main]) started. [ ] :app:buildKotlinToolingMetadata (Thread[Execution worker Thread 8,5,main]) started. [ ] > Task :app:buildKotlinToolingMetadata UP-TO-DATE [ ] Caching disabled for task ':app:buildKotlinToolingMetadata' because: [ ] Build cache is disabled [ ] Skipping task ':app:buildKotlinToolingMetadata' as it is up-to-date. [ ] Resolve mutations for :app:compileFlutterBuildRelease (Thread[Execution worker Thread 8,5,main]) started. [ ] :app:compileFlutterBuildRelease (Thread[Execution worker Thread 8,5,main]) started. [+1991 ms] > Task :app:compileFlutterBuildRelease [ ] Caching disabled for task ':app:compileFlutterBuildRelease' because: [ ] Build cache is disabled [ ] Task ':app:compileFlutterBuildRelease' is not up-to-date because: [ ] Task has failed previously. [ ] Starting process 'command 'C:\Users\Boolean\.puro\envs\stable\flutter\bin\flutter.bat''. Working directory: B:\dev\GitHub\flutter_extension_type_repro Command: C:\Users\Boolean\.puro\envs\stable\flutter\bin\flutter.bat --verbose assemble --no-version-check --depfile B:\dev\GitHub\flutter_extension_type_repro\build\app\intermediates\flutter\release/flutter_build.d --output B:\dev\GitHub\flutter_extension_type_repro\build\app\intermediates\flutter\release -dTargetFile=lib\main.dart -dTargetPlatform=android -dBuildMode=release -dTrackWidgetCreation=true -dTreeShakeIcons=true -dFlavor= -dAndroidArchs=android-arm android-arm64 android-x64 -dMinSdkVersion=19 -dIsAndroidLibrary=false android_aot_bundle_release_android-arm android_aot_bundle_release_android-arm64 android_aot_bundle_release_android-x64 [ +1 ms] Successfully started process 'command 'C:\Users\Boolean\.puro\envs\stable\flutter\bin\flutter.bat'' [ ] [ +151 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update. [ ] [ +4 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] [ ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update. [ ] [ +4 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ ] [ +104 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update. [ ] [ ] Artifact Instance of 'GradleWrapper' is not required, skipping update. [ ] [ +6 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] [ ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterSdk' is not required, skipping update. [ ] [ ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ +1 ms] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'PubDependencies' is not required, skipping update. [ ] [ +15 ms] Initializing file store [ ] [ +9 ms] Done initializing file store [ ] [ +80 ms] Skipping target: native_assets [ ] [ +1 ms] Skipping target: gen_localizations [ ] [ +2 ms] Skipping target: gen_dart_plugin_registrant [ ] [ +496 ms] Skipping target: kernel_snapshot [ ] [ +16 ms] Skipping target: android_aot_release_android-arm [ ] [ +28 ms] aot_android_asset_bundle: Starting due to {} [ ] [ +19 ms] Skipping target: android_aot_release_android-arm64 [ ] [ +13 ms] Skipping target: android_aot_release_android-x64 [ ] [ +86 ms] shaderc command: [C:\Users\Boolean\.puro\envs\stable\flutter\bin\cache\artifacts\engine\windows-x64\impellerc.exe, --runtime-stage-gles, --iplr, --sl=B:\dev\GitHub\flutter_extension_type_repro\build\app\intermediates\flutter\release\flutter_assets\shaders/ink_sparkle.frag, --spirv=B:\dev\GitHub\flutter_extension_type_repro\build\app\intermediates\flutter\release\flutter_assets\shaders/ink_sparkle.frag.spirv, --input=C:\Users\Boolean\.puro\envs\stable\flutter\packages\flutter\lib\src\material\shaders\ink_sparkle.frag, --input-type=frag, --include=C:\Users\Boolean\.puro\envs\stable\flutter\packages\flutter\lib\src\material\shaders, --include=C:\Users\Boolean\.puro\envs\stable\flutter\bin\cache\artifacts\engine\windows-x64\shader_lib] [ +1 ms] [ +44 ms] Running command: C:\Users\Boolean\.puro\envs\stable\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\Users\Boolean\.puro\envs\stable\flutter\bin\cache\artifacts\engine\windows-x64\const_finder.dart.snapshot --kernel-file B:\dev\GitHub\flutter_extension_type_repro\.dart_tool\flutter_build\7858408b882699f0afedc621b813d0e3\app.dill --class-library-uri package:flutter/src/widgets/icon_data.dart --class-name IconData --annotation-class-name _StaticIconProvider --annotation-class-library-uri package:flutter/src/widgets/icon_data.dart [ +72 ms] [ +489 ms] Persisting file store [ ] [ +7 ms] Done persisting file store [ ] [ +4 ms] Target aot_android_asset_bundle failed: IconTreeShakerException: ConstFinder failure: Unhandled exception: [ +1 ms] Reference to package:flutter_extension_type_repro/age_rating.dart::AgeRating is not bound to an AST node. An extension type declaration was expected [ ] #0 Reference.asExtensionTypeDeclaration (package:kernel/canonical_name.dart:579:7) [ ] #1 ExtensionType.extensionTypeDeclaration (package:kernel/ast.dart:11971:41) [ ] #2 ExtensionType.visitChildren (package:kernel/ast.dart:12084:5) [ ] #3 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1727:10) [ ] #4 VisitorDefault.defaultDartType (package:kernel/visitor.dart:1524:39) [ ] #5 DartTypeVisitorDefaultMixin.visitExtensionType (package:kernel/visitor.dart:804:47) [ ] #6 ExtensionType.accept (package:kernel/ast.dart:12074:14) [ ] #7 Field.visitChildren (package:kernel/ast.dart:2526:10) [ ] #8 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1727:10) [ ] #9 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39) [ ] #10 TreeVisitorDefault.defaultMember (package:kernel/visitor.dart:626:35) [ ] #11 MemberVisitorDefaultMixin.visitField (package:kernel/visitor.dart:413:31) [ ] #12 Field.accept (package:kernel/ast.dart:2514:40) [ ] #13 visitList (package:kernel/ast.dart:14886:14) [ ] #14 Class.visitChildren (package:kernel/ast.dart:1500:5) [ ] #15 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1727:10) [ ] #16 VisitorDefault.defaultTreeNode (package:kernel/visitor.dart:1521:39) [ ] #17 TreeVisitorDefaultMixin.visitClass (package:kernel/visitor.dart:556:31) [ ] #18 _ConstVisitor.visitClass (package:kernel/const_finder.dart:132:11) [ ] #19 Class.accept (package:kernel/ast.dart:1461:38) [ ] #20 visitList (package:kernel/ast.dart:14886:14) [ ] #21 Library.visitChildren (package:kernel/ast.dart:596:5) [ ] #22 ConstFinder.findInstances (package:kernel/const_finder.dart:208:15) [ ] #23 main (file:///C:/b/s/w/ir/cache/builder/src/flutter/tools/const_finder/bin/main.dart:103:41) [ ] #24 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:295:33) [ ] #25 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12) [ ] To disable icon tree shaking, pass --no-tree-shake-icons to the requested flutter build command [ ] #0 IconTreeShaker._findConstants (package:flutter_tools/src/build_system/targets/icon_tree_shaker.dart:298:7) [ ] [ ] #1 IconTreeShaker._getIconData (package:flutter_tools/src/build_system/targets/icon_tree_shaker.dart:109:45) [ ] [ ] #2 IconTreeShaker.subsetFont (package:flutter_tools/src/build_system/targets/icon_tree_shaker.dart:178:5) [ ] [ ] #3 copyAssets. (package:flutter_tools/src/build_system/targets/assets.dart:130:25) [ ] [ ] #4 Future.wait. (dart:async/future.dart:518:21) [ ] [ ] #5 copyAssets (package:flutter_tools/src/build_system/targets/assets.dart:108:3) [ ] [ ] #6 AndroidAssetBundle.build (package:flutter_tools/src/build_system/targets/android.dart:66:34) [ ] [ ] #7 _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:861:9) [ ] [ ] #8 Future.wait. (dart:async/future.dart:518:21) [ ] [ ] #9 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:799:32) [ ] [ ] #10 Future.wait. (dart:async/future.dart:518:21) [ ] [ ] #11 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:799:32) [ ] [ ] #12 FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:628:16) [ ] [ ] #13 AssembleCommand.runCommand (package:flutter_tools/src/commands/assemble.dart:318:32) [ ] [ ] #14 FlutterCommand.run. (package:flutter_tools/src/runner/flutter_command.dart:1389:27) [ ] [ ] #15 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) [ ] [ ] #16 CommandRunner.runCommand (package:args/command_runner.dart:212:13) [ ] [ ] #17 FlutterCommandRunner.runCommand. (package:flutter_tools/src/runner/flutter_command_runner.dart:355:9) [ ] [ ] #18 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) [ ] [ ] #19 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:295:5) [ ] [ ] #20 run.. (package:flutter_tools/runner.dart:119:9) [ ] [ ] #21 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) [ ] [ ] #22 main (package:flutter_tools/executable.dart:90:3) [ ] [ +63 ms] [ +9 ms] "flutter assemble" took 1,459ms. [ ] [ +2 ms] [ ] #0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) [ ] #1 AssembleCommand.runCommand (package:flutter_tools/src/commands/assemble.dart:335:7) [ ] [ ] #2 FlutterCommand.run. (package:flutter_tools/src/runner/flutter_command.dart:1389:27) [ ] [ ] #3 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) [ ] [ ] #4 CommandRunner.runCommand (package:args/command_runner.dart:212:13) [ ] [ ] #5 FlutterCommandRunner.runCommand. (package:flutter_tools/src/runner/flutter_command_runner.dart:355:9) [ ] [ ] #6 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) [ ] [ ] #7 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:295:5) [ ] [ ] #8 run.. (package:flutter_tools/runner.dart:119:9) [ ] [ ] #9 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) [ ] [ ] #10 main (package:flutter_tools/executable.dart:90:3) [ ] [ ] FAILURE: Build failed with an exception. [ ] * What went wrong: [ ] Execution failed for task ':app:compileFlutterBuildRelease'. [ ] > Process 'command 'C:\Users\Boolean\.puro\envs\stable\flutter\bin\flutter.bat'' finished with non-zero exit value 1 [ ] * Try: [ ] > Run with --debug option to get more log output. [ ] > Run with --scan to get full insights. [ ] * Exception is: [ ] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileFlutterBuildRelease'. [ ] [ +1 ms] Running 0 shutdown hooks [ ] [ ] Shutdown hooks complete [ ] [ +1 ms] exiting with code 1 [ ] > Task :app:compileFlutterBuildRelease FAILED [ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142) [ ] at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) [ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140) [ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128) [ ] at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77) [ ] at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) [ ] at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) [ ] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) [ ] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:57) [ ] at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) [ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) [ ] at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:322) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:309) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:302) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:288) [ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:462) [ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:379) [ ] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) [ ] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49) [ ] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [ ] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [ ] at java.base/java.lang.Thread.run(Thread.java:840) [ ] Caused by: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\Boolean\.puro\envs\stable\flutter\bin\flutter.bat'' finished with non-zero exit value 1 [ ] at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415) [ ] at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38) [ ] at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:202) [ ] at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1176) [ ] at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1171) [ ] at org.gradle.api.Project$exec$8.call(Unknown Source) [ ] at BaseFlutterTask.buildBundle(flutter.groovy:1419) [ ] at BaseFlutterTask$buildBundle.callCurrent(Unknown Source) [ ] at FlutterTask.build(flutter.groovy:1558) [ ] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ ] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) [ ] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [ ] at java.base/java.lang.reflect.Method.invoke(Method.java:568) [ ] at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125) [ ] at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) [ ] at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) [ ] at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) [ ] at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) [ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) [ ] at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221) [ ] at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204) [ ] at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187) [ ] at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165) [ ] at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89) [ ] at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40) [ ] at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53) [ ] at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) [ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) [ ] at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50) [ ] at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40) [ ] at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68) [ ] at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38) [ ] at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) [ ] at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) [ ] at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) [ ] at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51) [ ] at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29) [ ] at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124) [ ] at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80) [ ] at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58) [ ] at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48) [ ] at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36) [ ] at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181) [ ] at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71) [ ] at org.gradle.internal.Either$Right.fold(Either.java:175) [ ] at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59) [ ] at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69) [ ] at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47) [ ] at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36) [ ] at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25) [ ] at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36) [ ] at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) [ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110) [ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56) [ ] at java.base/java.util.Optional.orElseGet(Optional.java:364) [ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56) [ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38) [ ] at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73) [ ] at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44) [ ] at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) [ ] at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) [ ] at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89) [ ] at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50) [ ] at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:102) [ ] at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57) [ ] at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76) [ ] at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50) [ ] at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254) [ ] at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:91) [ ] at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56) [ ] at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32) [ ] at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21) [ ] at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38) [ ] at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43) [ ] at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31) [ ] at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40) [ ] at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281) [ ] at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40) [ ] at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30) [ ] at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) [ ] at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) [ ] at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44) [ ] at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33) [ ] at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76) [ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139) [ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128) [ ] at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77) [ ] at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) [ ] at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) [ ] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) [ ] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:57) [ ] at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) [ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) [ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) [ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) [ ] at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:322) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:309) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:302) [ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:288) [ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:462) [ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:379) [ ] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) [ ] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49) [ ] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [ ] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [ ] at java.base/java.lang.Thread.run(Thread.java:840) [ ] * Get more help at https://help.gradle.org [ ] BUILD FAILED in 3s [ ] 6 actionable tasks: 1 executed, 5 up-to-date [ ] Watched directory hierarchies: [C:\Users\Boolean\.puro\envs\stable\flutter\packages\flutter_tools\gradle, C:\Users\Boolean\.puro\envs\master\flutter\packages\flutter_tools\gradle, C:\Users\Boolean\.puro\envs\beta\flutter\packages\flutter_tools\gradle, B:\dev\GitHub\flutter_extension_type_repro\android] [ +517 ms] Running Gradle task 'assembleRelease'... (completed in 4.2s) [ +2 ms] "flutter apk" took 4,928ms. [ +3 ms] Gradle task assembleRelease failed with exit code 1 [ +1 ms] #0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:506:9) #2 AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:224:5) #3 BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:142:5) #4 FlutterCommand.run. (package:flutter_tools/src/runner/flutter_command.dart:1389:27) #5 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) #6 CommandRunner.runCommand (package:args/command_runner.dart:212:13) #7 FlutterCommandRunner.runCommand. (package:flutter_tools/src/runner/flutter_command_runner.dart:355:9) #8 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) #9 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:295:5) #10 run.. (package:flutter_tools/runner.dart:119:9) #11 AppContext.run. (package:flutter_tools/src/base/context.dart:153:19) #12 main (package:flutter_tools/executable.dart:90:3) [ +2 ms] Running 0 shutdown hooks [ ] Shutdown hooks complete [ +2 ms] exiting with code 1 ```

Reproduction

Minimal reproduction is located in this repository for easy cloning: https://github.com/getBoolean/flutter_extension_type_repro

// lib/age_rating.dart
extension type const AgeRating(int value) implements int {}

// lib/age_rating_dto.dart
import 'package:flutter_extension_type_repro/age_rating.dart';

class AgeRatingDto {
  const AgeRatingDto({
    this.value,
  });
  final AgeRating? value;
}

// lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_extension_type_repro/age_rating.dart';
import 'package:flutter_extension_type_repro/age_rating_dto.dart';

void main() {
  runApp(const MainApp());
}

const val = AgeRatingDto(value: AgeRating(0));

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('Hello World! $val'),
        ),
      ),
    );
  }
}

Dart Info

Reproduced on Dart 3.3.0/Flutter 3.19.2. (Also is reproducible on Flutter master 3.20.0-17.0.pre.97/Dart 3.4.0-190.0.dev)

Click to open ``` #### General info - Dart 3.3.0 (stable) (Tue Feb 13 10:25:19 2024 +0000) on "windows_x64" - on windows / "Windows 10 Pro" 10.0 (Build 22631) - locale is en-US #### Project info - sdk constraint: '>=3.3.0 <4.0.0' - dependencies: flutter - dev_dependencies: flutter_lints, flutter_test ``` ``` ╰─❯ flutter --version Flutter 3.19.2 • channel stable • unknown source Framework • revision 7482962148 (7 days ago) • 2024-02-27 16:51:22 -0500 Engine • revision 04817c99c9 Tools • Dart 3.3.0 • DevTools 2.31.1 ```
lrhn commented 7 months ago

Tentatively marking as area front-end, since that's where the error is thrown. If it's because the tree shaking has removed something that the compiler expects to be there (if that's even possible), the bug may still be in the icon tree-shaker code.

johnniwinther commented 7 months ago

cc @christopherfujino

christopherfujino commented 7 months ago

Hmm, it seems like in a world with extension classes, it is no longer safe to unequivocably call TreeVisitorDefaultMixin.visitClass from a RecursiveVisitor? @johnniwinther is there some check we should do before making this call: https://github.com/dart-lang/sdk/blob/main/pkg/kernel/lib/const_finder.dart#L132

Levi-Lesches commented 6 months ago

Just ran into this issue on 3.3.1:

Dart info #### General info - Dart 3.3.1 (stable) (Wed Mar 6 13:09:19 2024 +0000) on "windows_x64" - on windows / "Windows 10 Home" 10.0 (Build 22631) - locale is en-US #### Project info - sdk constraint: '^3.3.0' - dependencies: file_picker, flutter, go_router, http, path_provider, pdfx, permission_handler - dev_dependencies: flutter_test, very_good_analysis #### Process info | Memory | CPU | Elapsed time | Command line | | -----: | --: | -----------: | ------------ | | 15 MB | -- | | dart.exe | | 3 MB | -- | | dart.exe | | 812 MB | -- | | dart.exe | | 95 MB | -- | | dart.exe |
lrhn commented 6 months ago

I'd expect that it should be safe to call super.visitClass from visitClass. If there is an issue it would calling .visitClass to begin with. (Depedning on what counts as a "class", if it's more than just class/mixin class/enum declarations declarations, then the name is confusing :wink:).

panuavakul commented 2 months ago

It seems like this error when the extension type is imported and not when it's in the same file.