public static BoogieType InferExprTypeFromTypeString()

in Sources/SolToBoogie/MapArrayHelper.cs [31:82]


        public static BoogieType InferExprTypeFromTypeString(string typeString)
        {
            //TODO: use TypeDescriptions::IsInt/IsStruct etc., but need typeDescription instead of typeString
            if (IsArrayTypeString(typeString))
            {
                return BoogieType.Ref;
            }
            else if (IsMappingTypeString(typeString))
            {
                return BoogieType.Ref;
            }
            else if (typeString.Equals("address") || typeString.Equals("address payable"))
            {
                return BoogieType.Ref;
            }
            else if (typeString.Equals("bool"))
            {
                return BoogieType.Bool;
            }
            else if (typeString.StartsWith("uint") && !typeString.Contains("["))
            {
                return BoogieType.Int;
            }
            else if (typeString.StartsWith("int") && !typeString.Contains("["))
            {
                return BoogieType.Int;
            }
            else if (typeString.StartsWith("byte") && !typeString.Contains("["))
            {
                return BoogieType.Int;
            }
            else if (typeString.StartsWith("contract "))
            {
                return BoogieType.Ref;
            }
            else if (typeString.StartsWith("struct "))
            {
                return BoogieType.Ref;
            }
            else if (typeString.Equals("string") || typeString.StartsWith("string "))
            {
                return BoogieType.Int; //we think of string as its hash
            }
            else if (typeString.StartsWith("literal_string "))
            {
                return BoogieType.Int; //we think of string as its hash
            }
            else
            {
                throw new SystemException($"Cannot infer from type string: {typeString}");
            }
        }