]> gitweb.factorcode.org Git - factor.git/commitdiff
alien.syntax: save source location for TYPEDEF:, raise error on redefinition
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 5 Feb 2010 07:26:20 +0000 (20:26 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 5 Feb 2010 07:52:20 +0000 (20:52 +1300)
basis/alien/c-types/c-types-tests.factor
basis/alien/syntax/syntax.factor

index d134d571896c9f79c8c068320fafb61db890daaa..faee8955e934e20149b933d74d9dd5299e457437 100644 (file)
@@ -1,6 +1,7 @@
 USING: alien alien.syntax alien.c-types alien.parser
 eval kernel tools.test sequences system libc alien.strings
-io.encodings.utf8 math.constants classes.struct classes ;
+io.encodings.utf8 math.constants classes.struct classes
+accessors compiler.units ;
 IN: alien.c-types.tests
 
 CONSTANT: xyz 123
@@ -100,3 +101,12 @@ DEFER: struct-redefined
     \ struct-redefined class?
 ] unit-test
 
+[
+    "IN: alien.c-types.tests
+    USE: alien.syntax
+    USE: alien.c-types
+    TYPEDEF: int type-redefinition-test
+    TYPEDEF: int type-redefinition-test" eval( -- )
+]
+[ error>> error>> redefine-error? ]
+must-fail-with
index 609ed2826d9d526c2ee40487e18442b82b9feb94..295bcff089393c68f80dad36dd4102344164f3bb 100644 (file)
@@ -1,4 +1,4 @@
-! Copyright (C) 2005, 2009 Slava Pestov, Alex Chapman.
+! Copyright (C) 2005, 2010 Slava Pestov, Alex Chapman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays alien alien.c-types
 alien.arrays alien.strings kernel math namespaces parser
@@ -22,7 +22,7 @@ SYNTAX: CALLBACK:
     (CALLBACK:) define-inline ;
 
 SYNTAX: TYPEDEF:
-    scan-c-type CREATE-C-TYPE typedef ;
+    scan-c-type CREATE-C-TYPE dup save-location typedef ;
 
 SYNTAX: C-ENUM:
     ";" parse-tokens