Skip to content

Apps with null safety throw #68433

@mit-mit

Description

@mit-mit

The fix for #59879 just landed via a837557. We now seem to have a issue with simple material apps (example/hello_world doesn't throw):

Repro steps:

  1. flutter create foobar
  2. Edit pubspec.yaml to change sdk: ">=2.7.0 <3.0.0" to sdk: ">=2.11.0-0.0 <3.0.0"
  3. Replace the contents of lib/main.dart with:
    import 'package:flutter/material.dart';
    
    void main() {
    runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
        home: Scaffold(
            body: Center(
            child: Text('Material Hello'),
            ),
        ),
        );
      }
    }
  4. Run flutter run --enable-experiment=non-nullable

Expected result: no errors

Actual result: Three errors

An Observatory debugger and profiler on Android SDK built for x86 is available at: http://127.0.0.1:61913/ktKfMJw2gr4=/
D/EGL_emulation(17133): eglMakeCurrent: 0xe81a7ba0: ver 3 0 (tinfo 0xe010f620)
D/eglCodecCommon(17133): setVertexArrayObject: set vao to 0 (0) 1 0
I/flutter (17133): ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (17133): The following _TypeError was thrown during a scheduler callback:
I/flutter (17133): type 'Null' is not a subtype of type 'EngineLayer' of 'function result'
I/flutter (17133):
I/flutter (17133): When the exception was thrown, this was the stack:
I/flutter (17133): #0      SceneBuilder._pushPhysicalShape (dart:ui/compositing.dart)
I/flutter (17133): #1      SceneBuilder.pushPhysicalShape (dart:ui/compositing.dart:577:5)
I/flutter (17133): #2      PhysicalModelLayer.addToScene (package:flutter/src/rendering/layer.dart:1988:29)
I/flutter (17133): #3      Layer._addToSceneWithRetainedRendering (package:flutter/src/rendering/layer.dart:440:5)
I/flutter (17133): #4      ContainerLayer.addChildrenToScene (package:flutter/src/rendering/layer.dart:1027:15)
I/flutter (17133): #5      OffsetLayer.addToScene (package:flutter/src/rendering/layer.dart:1164:5)
I/flutter (17133): #6      Layer._addToSceneWithRetainedRendering (package:flutter/src/rendering/layer.dart:440:5)
I/flutter (17133): #7      ContainerLayer.addChildrenToScene (package:flutter/src/rendering/layer.dart:1027:15)
I/flutter (17133): #8      OffsetLayer.addToScene (package:flutter/src/rendering/layer.dart:1164:5)
I/flutter (17133): #9      Layer._addToSceneWithRetainedRendering (package:flutter/src/rendering/layer.dart:440:5)
I/flutter (17133): #10     ContainerLayer.addChildrenToScene (package:flutter/src/rendering/layer.dart:1027:15)
I/flutter (17133): #11     TransformLayer.addToScene (package:flutter/src/rendering/layer.dart:1609:5)
I/flutter (17133): #12     ContainerLayer.buildScene (package:flutter/src/rendering/layer.dart:765:5)
I/flutter (17133): #13     RenderView.compositeFrame (package:flutter/src/rendering/view.dart:231:37)
I/flutter (17133): #14     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:447:18)
I/flutter (17133): #15     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:907:13)
I/flutter (17133): #16     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:309:5)
I/flutter (17133): #17     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
I/flutter (17133): #18     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1055:9)
I/flutter (17133): #19     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:864:7)
I/flutter (17133): (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
I/flutter (17133): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (17133): Another exception was thrown: type 'Null' is not a subtype of type 'EngineLayer' of 'function result'

SDK version

mit-macbookpro4:nulltest mit$ flutter --version
Flutter 1.23.0-19.0.pre.95 • channel master • https://github.com/flutter/flutter.git
Framework • revision a837557634 (30 minutes ago) • 2020-10-18 06:12:02 -0400
Engine • revision 499a70f5e2
Tools • Dart 2.11.0 (build 2.11.0-234.0.dev)

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressiona: null-safetySupport for Dart's null safety featurecustomer: productengineflutter/engine related. See also e: labels.found in release: 1.23Found to occur in 1.23has reproducible stepsThe issue has been confirmed reproducible and is ready to work onwaiting for PR to land (fixed)A fix is in flight

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions