diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | defs/id.def | 2 | ||||
-rw-r--r-- | template/id.h.tmpl | 2 |
3 files changed, 8 insertions, 1 deletions
@@ -1,4 +1,7 @@ -Fri Dec 21 16:38:05 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> +Fri Dec 21 16:38:08 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * template/id.h.tmpl (ID2ATTRSET): compile time constant macro for + ID_ATTRSET. * defs/id.def (KeywordError): check duplication. diff --git a/defs/id.def b/defs/id.def index 48c6334227..1196e8fa9a 100644 --- a/defs/id.def +++ b/defs/id.def @@ -72,6 +72,8 @@ predefined.lines.each_with_index do |line, num| when /\A\$(?:\d+|(?!\d)\w+)\z/; global_ids when /\A@@(?!\d)\w+\z/; class_ids when /\A@(?!\d)\w+\z/; instance_ids + when /\A((?!\d)\w+)=\z/ + KeywordError.raise("use ID2ATTRSET(#{$1}) instead of ATTRSET #{name}", firstline+num) else preserved_ids end << token predefined_ids[token] = name diff --git a/template/id.h.tmpl b/template/id.h.tmpl index 1573247c86..c993243424 100644 --- a/template/id.h.tmpl +++ b/template/id.h.tmpl @@ -39,6 +39,8 @@ types = ids.keys.grep(/^[A-Z]/) #define ID_JUNK 0x07 #define ID_INTERNAL ID_JUNK +#define ID2ATTRSET(id) (((id)&~ID_SCOPE_MASK)|ID_ATTRSET) + #define symIFUNC ID2SYM(idIFUNC) #define symCFUNC ID2SYM(idCFUNC) |