diff --git a/basis/alien/c-types/c-types-tests.factor b/basis/alien/c-types/c-types-tests.factor index ad53dc487b..10a7b50ebb 100644 --- a/basis/alien/c-types/c-types-tests.factor +++ b/basis/alien/c-types/c-types-tests.factor @@ -44,6 +44,14 @@ TYPEDEF: char MyFunkyChar [ f ] [ pointer: char c-type pointer: MyFunkyChar c-type = ] unit-test [ { char* ascii } ] [ pointer: MyFunkyChar c-type ] unit-test +TYPEDEF: MyFunkyChar MyFunkyTypedef + +[ { char* ascii } ] [ pointer: MyFunkyTypedef c-type ] unit-test + +TYPEDEF: MyFunkyChar* MyFunkyString + +[ { char* ascii } ] [ MyFunkyString c-type ] unit-test + TYPEDEF: char* MyString [ t ] [ char* c-type MyString c-type = ] unit-test diff --git a/basis/alien/c-types/c-types.factor b/basis/alien/c-types/c-types.factor index 316377dc27..3255d16d80 100644 --- a/basis/alien/c-types/c-types.factor +++ b/basis/alien/c-types/c-types.factor @@ -301,7 +301,7 @@ CONSTANT: primitive-types : special-pointer-type ( type -- special-type ) dup c-type-word? [ dup "pointer-c-type" word-prop - [ ] [ resolve-pointer-typedef "pointer-c-type" word-prop ] ?if + [ ] [ "c-type" word-prop special-pointer-type ] ?if ] [ drop f ] if ; : primitive-pointer-type? ( type -- ? )