1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2004-2008 Jean Privat <jean@pryen.org>
4 # Copyright 2006-2008 Floréal Morandat <morandat@lirmm.fr>
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
24 # The type a indirect type refers to
25 meth direct_type
: MMType do return self
28 # Formal types are named indirect types
31 redef meth is_valid
do return _bound
!= null
33 # The name of the type
34 readable attr _name
: Symbol
44 redef meth
<(t
) do return t
!= null and (t
== self or t
.is_supertype
(_bound
))
45 redef meth is_supertype
(t
) do return _bound
.is_supertype
(t
)
46 redef meth direct_type
do return _bound
.direct_type
47 redef meth local_class
do return _bound
.local_class
49 redef meth to_s
do return _name
.to_s
51 protected init(name
: Symbol, bound
: MMType)