compiler: Add Backend Function type.
From-SVN: r206611
This commit is contained in:
parent
d126a4aed0
commit
967d49d172
@ -4066,6 +4066,17 @@ Type::make_function_type(Typed_identifier* receiver,
|
||||
return new Function_type(receiver, parameters, results, location);
|
||||
}
|
||||
|
||||
// Make a backend function type.
|
||||
|
||||
Backend_function_type*
|
||||
Type::make_backend_function_type(Typed_identifier* receiver,
|
||||
Typed_identifier_list* parameters,
|
||||
Typed_identifier_list* results,
|
||||
Location location)
|
||||
{
|
||||
return new Backend_function_type(receiver, parameters, results, location);
|
||||
}
|
||||
|
||||
// Class Pointer_type.
|
||||
|
||||
// Traversal.
|
||||
|
@ -19,6 +19,7 @@ class Float_type;
|
||||
class Complex_type;
|
||||
class String_type;
|
||||
class Function_type;
|
||||
class Backend_function_type;
|
||||
class Struct_field;
|
||||
class Struct_field_list;
|
||||
class Struct_type;
|
||||
@ -484,6 +485,12 @@ class Type
|
||||
Typed_identifier_list* results,
|
||||
Location);
|
||||
|
||||
static Backend_function_type*
|
||||
make_backend_function_type(Typed_identifier* receiver,
|
||||
Typed_identifier_list* parameters,
|
||||
Typed_identifier_list* results,
|
||||
Location);
|
||||
|
||||
static Pointer_type*
|
||||
make_pointer_type(Type*);
|
||||
|
||||
@ -1896,6 +1903,23 @@ class Function_type : public Type
|
||||
Btype* fnbtype_;
|
||||
};
|
||||
|
||||
// The type of a function's backend representation.
|
||||
|
||||
class Backend_function_type : public Function_type
|
||||
{
|
||||
public:
|
||||
Backend_function_type(Typed_identifier* receiver,
|
||||
Typed_identifier_list* parameters,
|
||||
Typed_identifier_list* results, Location location)
|
||||
: Function_type(receiver, parameters, results, location)
|
||||
{ }
|
||||
|
||||
protected:
|
||||
Btype*
|
||||
do_get_backend(Gogo* gogo)
|
||||
{ return this->get_backend_fntype(gogo); }
|
||||
};
|
||||
|
||||
// The type of a pointer.
|
||||
|
||||
class Pointer_type : public Type
|
||||
|
Loading…
Reference in New Issue
Block a user