------------ #lib::Element:: ------------
%this = _Parameter #0 [_T (#lib::Element)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::MockHashMap:: ------------
%K = _Parameter #0
%V = _Parameter #1
t2 = _CreateConcreteType (#lib::_NotRealHashMap @ (%K, %V))
t3 = _Call direct [#lib::_NotRealHashMap::] (t2)
RESULT: t2
------------ #lib::_NotRealHashMap:: ------------
%this = _Parameter #0 [_T (#lib::_NotRealHashMap<dynamic, dynamic>)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::_NotRealHashMap::setEntry ------------
%this = _Parameter #0 [_T (#lib::_NotRealHashMap<dynamic, dynamic>)+]
%key = _Parameter #1
%value = _Parameter #2
t3 = _Extract (%this[#lib::_NotRealHashMap/0])
t4 = _TypeCheck (%key against t3) (for parameter key)
t5 = _Extract (%this[#lib::_NotRealHashMap/1])
t6 = _TypeCheck (%value against t5) (for parameter value)
RESULT: _T {}?
------------ #lib::InheritedElement:: ------------
%this = _Parameter #0 [_T (#lib::InheritedElement)+]
t1 = _Call direct [#lib::Element::] (%this)
RESULT: _T {}?
------------ #lib::InheritedElement::setDependencies ------------
%this = _Parameter #0 [_T (#lib::InheritedElement)+]
%dependent = _Parameter #1 [_T (#lib::Element)+?]
%value = _Parameter #2 [_T (dart.core::Object)+?]
t3* = _Call virtual get [#lib::InheritedElement::_dependents] (%this)
t4 = _Call [#lib::MockHashMap::setEntry] (t3, %dependent, %value)
RESULT: _T {}?
------------ #lib::InheritedElement::_dependents ------------
%this = _Parameter #0 [_T (#lib::InheritedElement)+]
t1* = _Call direct [#lib::MockHashMap::] (#lib::Element, dart.core::Object)
RESULT: t1
------------ #lib::main ------------
t0 = _Call direct [#lib::InheritedElement::] (_T (#lib::InheritedElement))
t1 = _Call [#lib::InheritedElement::setDependencies] (_T (#lib::InheritedElement), _T (#lib::InheritedElement), _T (dart.core::_Smi))
t2 = _Call direct [#lib::Element::] (_T (#lib::Element))
t3 = _Call [#lib::InheritedElement::setDependencies] (_T (#lib::InheritedElement), _T (#lib::Element), _T {}?)
RESULT: _T {}?
