# This file is part of NIT ( http://www.nitlanguage.org ). # # Copyright 2004-2008 Jean Privat # Copyright 2006-2008 Floréal Morandat # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Handle multiple number of parameters in signatures package vararg import genericity redef class MMSignature # Position of the vararg parameter. -1 in no vararg parameter readable writable attr _vararg_rank: Int # Is there a vararg parameter in the signature? meth has_vararg: Bool do return _vararg_rank >= 0 end redef meth adaptation_to(r) do var s = super(r) s.vararg_rank = _vararg_rank return s end redef init(params: Array[MMType], return_type: MMType, r: MMType) do super _vararg_rank = -1 end end