library;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/invalid.dart:5:8: Error: Type 'Unresolved' not found.
// method(Unresolved o) {
//        ^^^^^^^^^^
//
// pkg/front_end/testcases/patterns/invalid.dart:5:8: Error: 'Unresolved' isn't a type.
// method(Unresolved o) {
//        ^^^^^^^^^^
//
import self as self;
import "dart:core" as core;

static method method(invalid-type o) → dynamic {
  #L1:
  {
    final synthesized invalid-type #0#0 = o;
    synthesized core::int #0#2;
    synthesized core::bool #0#2#isSet = false;
    synthesized invalid-type #0#15;
    synthesized core::bool #0#15#isSet = false;
    {
      lowered hoisted core::List<invalid-type> a#case#0;
      lowered hoisted invalid-type a#case#1;
      if(#0#0 is core::List<invalid-type> && (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t1 = #0#2#isSet = true in #0#2 = #0#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1 || #0#0 is core::List<invalid-type> && (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t2 = #0#2#isSet = true in #0#2 = #0#0.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && (let final dynamic #t3 = a#case#0 = #0#0.{core::List::sublist}(1, (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t4 = #0#2#isSet = true in #0#2 = #0#0.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<invalid-type>} in true) || #0#0 is core::List<invalid-type> || #0#0 is core::Map<invalid-type, invalid-type> && (!((#0#15#isSet ?{invalid-type} #0#15{invalid-type} : let final dynamic #t5 = #0#15#isSet = true in #0#15 = #0#0.{core::Map::[]}(#C3){(core::Object?) → invalid-type}) == null) || null is invalid-type && #0#0.{core::Map::containsKey}(#C3){(core::Object?) → core::bool}) && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{invalid-type} #0#15{invalid-type} : let final dynamic #t6 = #0#15#isSet = true in #0#15 = #0#0.{core::Map::[]}(#C3){(core::Object?) → invalid-type}) || #0#0 is core::String && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t7 = #0#2#isSet = true in #0#2 = #0#0.{core::String::length}{core::int}) || #0#0 =={core::Object::==}{(core::Object) → core::bool} #C4 || #0#0{<invalid>}.<(#C4) || #0#0 is (core::Object?, {a: core::Object?}) && #C3 =={core::num::==}{(core::Object) → core::bool} #0#0.$1{core::Object?} && (let final dynamic #t8 = a#case#1 = #0#0.a{core::Object?} in true)) {
      }
    }
  }
}

constants  {
  #C1 = 1
  #C2 = 2
  #C3 = 0
  #C4 = 5
}

Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///invalid.dart:10:12 -> BoolConstant(true)
Extra constant evaluation: evaluated: 103, effectively constant: 1
