@@ -1631,58 +1631,57 @@ class ResolutionReader {
16311631 }
16321632
16331633 TypeImpl ? readType () {
1634- var tag = _reader.readByte ();
1635- if (tag == Tag .NullType ) {
1636- return null ;
1637- } else if (tag == Tag .DynamicType ) {
1638- var type = DynamicTypeImpl .instance;
1639- return _readAliasElementArguments (type);
1640- } else if (tag == Tag .FunctionType ) {
1641- var type = _readFunctionType ();
1642- return _readAliasElementArguments (type);
1643- } else if (tag == Tag .InterfaceType ) {
1644- var element = readElement () as InterfaceElementImpl ;
1645- var typeArguments = _readTypeList ();
1646- var nullability = _readNullability ();
1647- var type = element.instantiateImpl (
1648- typeArguments: typeArguments,
1649- nullabilitySuffix: nullability,
1650- );
1651- return _readAliasElementArguments (type);
1652- } else if (tag == Tag .InterfaceType_noTypeArguments_none ) {
1653- var element = readElement () as InterfaceElementImpl ;
1654- var type = element.instantiateImpl (
1655- typeArguments: const [],
1656- nullabilitySuffix: NullabilitySuffix .none,
1657- );
1658- return _readAliasElementArguments (type);
1659- } else if (tag == Tag .InterfaceType_noTypeArguments_question ) {
1660- var element = readElement () as InterfaceElementImpl ;
1661- var type = element.instantiateImpl (
1662- typeArguments: const [],
1663- nullabilitySuffix: NullabilitySuffix .question,
1664- );
1665- return _readAliasElementArguments (type);
1666- } else if (tag == Tag .InvalidType ) {
1667- var type = InvalidTypeImpl .instance;
1668- return _readAliasElementArguments (type);
1669- } else if (tag == Tag .NeverType ) {
1670- var nullability = _readNullability ();
1671- var type = NeverTypeImpl .instance.withNullability (nullability);
1672- return _readAliasElementArguments (type);
1673- } else if (tag == Tag .RecordType ) {
1674- var type = _readRecordType ();
1675- return _readAliasElementArguments (type);
1676- } else if (tag == Tag .TypeParameterType ) {
1677- var element = readElement () as TypeParameterElementImpl ;
1678- var nullability = _readNullability ();
1679- var type = element.instantiate (nullabilitySuffix: nullability);
1680- return _readAliasElementArguments (type);
1681- } else if (tag == Tag .VoidType ) {
1682- var type = VoidTypeImpl .instance;
1683- return _readAliasElementArguments (type);
1684- } else {
1685- throw UnimplementedError ('$tag ' );
1634+ var tag = readEnum (TypeTag .values);
1635+ switch (tag) {
1636+ case TypeTag .NullType :
1637+ return null ;
1638+ case TypeTag .DynamicType :
1639+ var type = DynamicTypeImpl .instance;
1640+ return _readAliasElementArguments (type);
1641+ case TypeTag .FunctionType :
1642+ var type = _readFunctionType ();
1643+ return _readAliasElementArguments (type);
1644+ case TypeTag .InterfaceType :
1645+ var element = readElement () as InterfaceElementImpl ;
1646+ var typeArguments = _readTypeList ();
1647+ var nullability = _readNullability ();
1648+ var type = element.instantiateImpl (
1649+ typeArguments: typeArguments,
1650+ nullabilitySuffix: nullability,
1651+ );
1652+ return _readAliasElementArguments (type);
1653+ case TypeTag .InterfaceType_noTypeArguments_none :
1654+ var element = readElement () as InterfaceElementImpl ;
1655+ var type = element.instantiateImpl (
1656+ typeArguments: const [],
1657+ nullabilitySuffix: NullabilitySuffix .none,
1658+ );
1659+ return _readAliasElementArguments (type);
1660+ case TypeTag .InterfaceType_noTypeArguments_question :
1661+ var element = readElement () as InterfaceElementImpl ;
1662+ var type = element.instantiateImpl (
1663+ typeArguments: const [],
1664+ nullabilitySuffix: NullabilitySuffix .question,
1665+ );
1666+ return _readAliasElementArguments (type);
1667+ case TypeTag .InvalidType :
1668+ var type = InvalidTypeImpl .instance;
1669+ return _readAliasElementArguments (type);
1670+ case TypeTag .NeverType :
1671+ var nullability = _readNullability ();
1672+ var type = NeverTypeImpl .instance.withNullability (nullability);
1673+ return _readAliasElementArguments (type);
1674+ case TypeTag .RecordType :
1675+ var type = _readRecordType ();
1676+ return _readAliasElementArguments (type);
1677+ case TypeTag .TypeParameterType :
1678+ var element = readElement () as TypeParameterElementImpl ;
1679+ var nullability = _readNullability ();
1680+ var type = element.instantiate (nullabilitySuffix: nullability);
1681+ return _readAliasElementArguments (type);
1682+ case TypeTag .VoidType :
1683+ var type = VoidTypeImpl .instance;
1684+ return _readAliasElementArguments (type);
16861685 }
16871686 }
16881687
0 commit comments