@@ -1544,6 +1544,8 @@ TypeResult ReferenceType::unaryOperatorResult(Token _operator) const
15441544 return TypeProvider::emptyTuple ();
15451545 case DataLocation::Storage:
15461546 return isPointer () ? nullptr : TypeProvider::emptyTuple ();
1547+ case DataLocation::Transient:
1548+ solUnimplemented (" Transient data location is only supported for value types." );
15471549 }
15481550 return nullptr ;
15491551}
@@ -1571,6 +1573,9 @@ std::string ReferenceType::stringForReferencePart() const
15711573 return " calldata" ;
15721574 case DataLocation::Memory:
15731575 return " memory" ;
1576+ case DataLocation::Transient:
1577+ solUnimplemented (" Transient data location is only supported for value types." );
1578+ break ;
15741579 }
15751580 solAssert (false , " " );
15761581 return " " ;
@@ -1584,6 +1589,9 @@ std::string ReferenceType::identifierLocationSuffix() const
15841589 case DataLocation::Storage:
15851590 id += " _storage" ;
15861591 break ;
1592+ case DataLocation::Transient:
1593+ solUnimplemented (" Transient data location is only supported for value types." );
1594+ break ;
15871595 case DataLocation::Memory:
15881596 id += " _memory" ;
15891597 break ;
@@ -1748,6 +1756,9 @@ BoolResult ArrayType::validForLocation(DataLocation _loc) const
17481756 if (storageSizeUpperBound () >= bigint (1 ) << 256 )
17491757 return BoolResult::err (" Type too large for storage." );
17501758 break ;
1759+ case DataLocation::Transient:
1760+ solUnimplemented (" Transient data location is only supported for value types." );
1761+ break ;
17511762 }
17521763 return true ;
17531764}
@@ -1828,6 +1839,9 @@ std::vector<std::tuple<std::string, Type const*>> ArrayType::makeStackItems() co
18281839 case DataLocation::Storage:
18291840 // byte offset inside storage value is omitted
18301841 return {std::make_tuple (" slot" , TypeProvider::uint256 ())};
1842+ case DataLocation::Transient:
1843+ solUnimplemented (" Transient data location is only supported for value types." );
1844+ break ;
18311845 }
18321846 solAssert (false , " " );
18331847}
@@ -2568,6 +2582,9 @@ std::vector<std::tuple<std::string, Type const*>> StructType::makeStackItems() c
25682582 return {std::make_tuple (" mpos" , TypeProvider::uint256 ())};
25692583 case DataLocation::Storage:
25702584 return {std::make_tuple (" slot" , TypeProvider::uint256 ())};
2585+ case DataLocation::Transient:
2586+ solUnimplemented (" Transient data location is only supported for value types." );
2587+ break ;
25712588 }
25722589 solAssert (false , " " );
25732590}
0 commit comments