Add type variables.
This commit is contained in:
@@ -38,3 +38,13 @@ Predefined types
|
||||
.. automodule:: cretonne.types
|
||||
:members:
|
||||
|
||||
Parametric polymorphism
|
||||
-----------------------
|
||||
.. currentmodule:: cretonne
|
||||
|
||||
Instruction operands can be defined with *type variables* instead of concrete
|
||||
types for their operands. This makes the instructions polymorphic.
|
||||
|
||||
.. autoclass:: TypeVar
|
||||
|
||||
|
||||
|
||||
@@ -94,3 +94,19 @@ class FloatType(ScalarType):
|
||||
|
||||
def __repr__(self):
|
||||
return 'FloatType(bits={})'.format(self.bits)
|
||||
|
||||
#
|
||||
# Parametric polymorphism.
|
||||
#
|
||||
|
||||
class TypeVar(object):
|
||||
"""
|
||||
A Type Variable.
|
||||
|
||||
Type variables can be used in place of concrete types when defining
|
||||
instructions. This makes the instructions *polymorphic*.
|
||||
"""
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
|
||||
|
||||
Reference in New Issue
Block a user