view tools/foreach.m4 @ 1351:1a4d15fe2c62

Fix the issue for name confliction between two used traits. - When a class use two or more traits, and the name of a method from one trait conflicts with an attribute from another one, composite will be fault for setting method proxys. - Solution is to skip attributes that is not callable when setting proxys.
author Thinker K.F. Li <thinker@codemud.net>
date Sun, 13 Feb 2011 10:04:33 +0800
parents f4b792afa74e
children
line wrap: on
line source

divert([-1])

define([_arg1], [$1])

define([_foreach], [ifelse([$2], [()], [],
[define([$1], _arg1$2)$3[]_foreach([$1], (shift$2), [$3])])])

define([foreach], [pushdef([$1])_foreach($@)popdef([$1])])

divert[]dnl