You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2015/05/09 19:50:04 UTC
[07/11] lucy-clownfish git commit: Move parcel field from CFCSymbol
to CFCClass
Move parcel field from CFCSymbol to CFCClass
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/ad6e0898
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/ad6e0898
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/ad6e0898
Branch: refs/heads/master
Commit: ad6e08984c09aeb9664f44170135ea4fb5d9734a
Parents: 3ef6577
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun Jul 27 01:21:50 2014 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Thu May 7 21:19:37 2015 +0200
----------------------------------------------------------------------
compiler/perl/lib/Clownfish/CFC.pm | 26 ++++----------
compiler/perl/lib/Clownfish/CFC.xs | 48 ++++++-------------------
compiler/perl/t/051-symbol.t | 18 ++--------
compiler/perl/t/200-function.t | 1 -
compiler/perl/t/201-method.t | 1 -
compiler/perl/t/202-overridden_method.t | 1 -
compiler/perl/t/203-final_method.t | 1 -
compiler/perl/t/300-variable.t | 20 ++++-------
compiler/perl/t/401-class.t | 3 --
compiler/perl/t/403-parcel.t | 11 +-----
compiler/src/CFCCHtml.c | 7 ++--
compiler/src/CFCCallable.c | 5 ++-
compiler/src/CFCCallable.h | 9 ++---
compiler/src/CFCClass.c | 14 +++++---
compiler/src/CFCClass.h | 2 +-
compiler/src/CFCFunction.c | 16 ++++-----
compiler/src/CFCFunction.h | 12 +++----
compiler/src/CFCGoClass.c | 2 +-
compiler/src/CFCGoMethod.c | 8 ++---
compiler/src/CFCGoMethod.h | 2 +-
compiler/src/CFCMethod.c | 54 ++++++++--------------------
compiler/src/CFCMethod.h | 23 +++---------
compiler/src/CFCParseHeader.y | 14 ++++----
compiler/src/CFCSymbol.c | 33 +++--------------
compiler/src/CFCSymbol.h | 27 ++------------
compiler/src/CFCTestClass.c | 7 ++--
compiler/src/CFCTestFunction.c | 5 ++-
compiler/src/CFCTestMethod.c | 42 +++++++++++-----------
compiler/src/CFCTestParcel.c | 11 +-----
compiler/src/CFCTestSymbol.c | 53 +++++----------------------
compiler/src/CFCTestVariable.c | 11 +++---
compiler/src/CFCVariable.c | 16 ++++-----
compiler/src/CFCVariable.h | 15 ++++----
33 files changed, 146 insertions(+), 372 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/lib/Clownfish/CFC.pm
----------------------------------------------------------------------
diff --git a/compiler/perl/lib/Clownfish/CFC.pm b/compiler/perl/lib/Clownfish/CFC.pm
index b714adb..21d41ed 100644
--- a/compiler/perl/lib/Clownfish/CFC.pm
+++ b/compiler/perl/lib/Clownfish/CFC.pm
@@ -219,7 +219,6 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
param_list => undef,
name => undef,
docucomment => undef,
- parcel => undef,
inline => undef,
exposure => undef,
);
@@ -229,12 +228,10 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
confess "no subclassing allowed" unless $either eq __PACKAGE__;
verify_args( \%new_PARAMS, %args ) or confess $@;
$args{inline} ||= 0;
- $args{parcel}
- = Clownfish::CFC::Model::Parcel->acquire( $args{parcel} );
return _new(
@args{
- qw( parcel exposure class_name name return_type param_list
- docucomment inline )
+ qw( exposure class_name name return_type param_list docucomment
+ inline )
}
);
}
@@ -303,7 +300,6 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
param_list => undef,
name => undef,
docucomment => undef,
- parcel => undef,
abstract => undef,
final => undef,
exposure => 'parcel',
@@ -314,13 +310,11 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
verify_args( \%new_PARAMS, %args ) or confess $@;
confess "no subclassing allowed" unless $either eq __PACKAGE__;
$args{abstract} ||= 0;
- $args{parcel}
- = Clownfish::CFC::Model::Parcel->acquire( $args{parcel} );
- $args{final} ||= 0;
+ $args{final} ||= 0;
return _new(
@args{
- qw( parcel exposure class_name name return_type param_list
- docucomment final abstract )
+ qw( exposure class_name name return_type param_list docucomment
+ final abstract )
}
);
}
@@ -452,7 +446,6 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
use Carp;
my %new_PARAMS = (
- parcel => undef,
exposure => undef,
class_name => undef,
name => undef,
@@ -462,10 +455,8 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
my ( $either, %args ) = @_;
verify_args( \%new_PARAMS, %args ) or confess $@;
confess "no subclassing allowed" unless $either eq __PACKAGE__;
- $args{parcel}
- = Clownfish::CFC::Model::Parcel->acquire( $args{parcel} );
return _new(
- @args{qw( parcel exposure class_name name )} );
+ @args{qw( exposure class_name name )} );
}
}
@@ -635,7 +626,6 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
our %new_PARAMS = (
type => undef,
name => undef,
- parcel => undef,
exposure => 'local',
class_name => undef,
inert => undef,
@@ -646,11 +636,9 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.4.0' ) }
confess "no subclassing allowed" unless $either eq __PACKAGE__;
verify_args( \%new_PARAMS, %args ) or confess $@;
$args{exposure} ||= 'local';
- $args{parcel}
- = Clownfish::CFC::Model::Parcel->acquire( $args{parcel} );
return _new(
@args{
- qw( parcel exposure class_name name type inert )
+ qw( exposure class_name name type inert )
}
);
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/lib/Clownfish/CFC.xs
----------------------------------------------------------------------
diff --git a/compiler/perl/lib/Clownfish/CFC.xs b/compiler/perl/lib/Clownfish/CFC.xs
index 524c5c9..0d0d83c 100644
--- a/compiler/perl/lib/Clownfish/CFC.xs
+++ b/compiler/perl/lib/Clownfish/CFC.xs
@@ -637,8 +637,7 @@ PPCODE:
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Model::Function
SV*
-_new(parcel, exposure_sv, class_name_sv, name_sv, return_type, param_list, docucomment, is_inline)
- CFCParcel *parcel;
+_new(exposure_sv, class_name_sv, name_sv, return_type, param_list, docucomment, is_inline)
SV *exposure_sv;
SV *class_name_sv;
SV *name_sv;
@@ -654,8 +653,8 @@ CODE:
const char *name =
SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL;
CFCFunction *self
- = CFCFunction_new(parcel, exposure, class_name, name, return_type,
- param_list, docucomment, is_inline);
+ = CFCFunction_new(exposure, class_name, name, return_type, param_list,
+ docucomment, is_inline);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
@@ -819,8 +818,7 @@ PPCODE:
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Model::Method
SV*
-_new(parcel, exposure_sv, class_name_sv, name, return_type, param_list, docucomment, is_final, is_abstract)
- CFCParcel *parcel;
+_new(exposure_sv, class_name_sv, name, return_type, param_list, docucomment, is_final, is_abstract)
SV *exposure_sv;
SV *class_name_sv;
const char *name;
@@ -835,8 +833,8 @@ CODE:
const char *class_name =
SvOK(class_name_sv) ? SvPV_nolen(class_name_sv) : NULL;
CFCMethod *self
- = CFCMethod_new(parcel, exposure, class_name, name, return_type,
- param_list, docucomment, is_final, is_abstract);
+ = CFCMethod_new(exposure, class_name, name, return_type, param_list,
+ docucomment, is_final, is_abstract);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
@@ -1277,8 +1275,7 @@ PPCODE:
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Model::Symbol
SV*
-_new(parcel, exposure, class_name_sv, name_sv)
- CFCParcel *parcel;
+_new(exposure, class_name_sv, name_sv)
const char *exposure;
SV *class_name_sv;
SV *name_sv;
@@ -1290,7 +1287,7 @@ CODE:
? SvPV_nolen(name_sv)
: NULL;
CFCSymbol *self
- = CFCSymbol_new(parcel, exposure, class_name, name);
+ = CFCSymbol_new(exposure, class_name, name);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
@@ -1328,13 +1325,9 @@ void
_set_or_get(self, ...)
CFCSymbol *self;
ALIAS:
- get_parcel = 2
get_class_name = 4
get_exposure = 8
get_name = 10
- get_prefix = 12
- get_Prefix = 14
- get_PREFIX = 16
public = 18
private = 20
parcel = 22
@@ -1342,11 +1335,6 @@ ALIAS:
PPCODE:
{
START_SET_OR_GET_SWITCH
- case 2: {
- struct CFCParcel *parcel = CFCSymbol_get_parcel(self);
- retval = S_cfcbase_to_perlref(parcel);
- }
- break;
case 4: {
const char *class_name = CFCSymbol_get_class_name(self);
retval = class_name
@@ -1364,21 +1352,6 @@ PPCODE:
retval = newSVpvn(name, strlen(name));
}
break;
- case 12: {
- const char *value = CFCSymbol_get_prefix(self);
- retval = newSVpvn(value, strlen(value));
- }
- break;
- case 14: {
- const char *value = CFCSymbol_get_Prefix(self);
- retval = newSVpvn(value, strlen(value));
- }
- break;
- case 16: {
- const char *value = CFCSymbol_get_PREFIX(self);
- retval = newSVpvn(value, strlen(value));
- }
- break;
case 18:
retval = newSViv(CFCSymbol_public(self));
break;
@@ -1770,8 +1743,7 @@ OUTPUT: RETVAL
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Model::Variable
SV*
-_new(parcel, exposure, class_name_sv, name_sv, type_sv, inert_sv)
- CFCParcel *parcel;
+_new(exposure, class_name_sv, name_sv, type_sv, inert_sv)
const char *exposure;
SV *class_name_sv;
SV *name_sv;
@@ -1795,7 +1767,7 @@ CODE:
croak("Param 'type' is not a Clownfish::CFC::Model::Type");
}
CFCVariable *self
- = CFCVariable_new(parcel, exposure, class_name, name, type, inert);
+ = CFCVariable_new(exposure, class_name, name, type, inert);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/051-symbol.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/051-symbol.t b/compiler/perl/t/051-symbol.t
index bd08450..b8dabad 100644
--- a/compiler/perl/t/051-symbol.t
+++ b/compiler/perl/t/051-symbol.t
@@ -16,7 +16,7 @@
use strict;
use warnings;
-use Test::More tests => 39;
+use Test::More tests => 34;
use Clownfish::CFC;
my $parcel = Clownfish::CFC::Model::Parcel->new( name => 'Eep' );
@@ -48,16 +48,6 @@ ok( !$public_exposure->equals($parcel_exposure),
"different exposure spoils equals"
);
-my $lucifer_parcel = Clownfish::CFC::Model::Parcel->new( name => 'Lucifer' );
-$lucifer_parcel->register;
-my $lucifer = new_symbol( parcel => 'Lucifer' );
-ok( $$lucifer_parcel == ${ $lucifer->get_parcel }, "derive parcel" );
-is( $lucifer->get_prefix, "lucifer_", "get_prefix" );
-is( $lucifer->get_Prefix, "Lucifer_", "get_Prefix" );
-is( $lucifer->get_PREFIX, "LUCIFER_", "get_PREFIX" );
-my $luser = new_symbol( parcel => 'Luser' );
-ok( !$lucifer->equals($luser), "different parcel spoils equals" );
-
for ( qw( 1foo * 0 ), "\x{263a}" ) {
eval { my $thing = new_symbol( name => $_ ); };
like( $@, qr/name/, "reject bad name" );
@@ -68,7 +58,6 @@ my $booga = new_symbol( name => 'booga' );
ok( !$ooga->equals($booga), "Different name spoils equals()" );
my $eep = new_symbol(
- parcel => 'Eep',
class_name => "Op::Ork",
name => 'ah_ah',
);
@@ -81,9 +70,8 @@ is( $eep->full_sym($ork), "eep_Ork_ah_ah", "full_sym" );
sub new_symbol {
return Clownfish::CFC::Model::Symbol->new(
- parcel => $parcel,
- name => 'sym',
- exposure => 'parcel',
+ name => 'sym',
+ exposure => 'parcel',
@_
);
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/200-function.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/200-function.t b/compiler/perl/t/200-function.t
index 1384a7d..5a04a30 100644
--- a/compiler/perl/t/200-function.t
+++ b/compiler/perl/t/200-function.t
@@ -27,7 +27,6 @@ $parser->parse('parcel Neato;')
or die "failed to process parcel_definition";
my %args = (
- parcel => 'Neato',
return_type => $parser->parse('Obj*'),
class_name => 'Neato::Foo',
param_list => $parser->parse('(int32_t some_num)'),
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/201-method.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/201-method.t b/compiler/perl/t/201-method.t
index 8af24d7..66fbc3e 100644
--- a/compiler/perl/t/201-method.t
+++ b/compiler/perl/t/201-method.t
@@ -26,7 +26,6 @@ $parser->parse('parcel Neato;')
or die "failed to process parcel_definition";
my %args = (
- parcel => 'Neato',
return_type => $parser->parse('Obj*'),
class_name => 'Neato::Foo',
param_list => $parser->parse('(Foo *self, int32_t count = 0)'),
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/202-overridden_method.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/202-overridden_method.t b/compiler/perl/t/202-overridden_method.t
index 792a08a..c33c928 100644
--- a/compiler/perl/t/202-overridden_method.t
+++ b/compiler/perl/t/202-overridden_method.t
@@ -30,7 +30,6 @@ my %args = (
class_name => 'Neato::Foo',
param_list => $parser->parse('(Foo *self)'),
name => 'Return_An_Obj',
- parcel => 'Neato',
);
my $orig = Clownfish::CFC::Model::Method->new(%args);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/203-final_method.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/203-final_method.t b/compiler/perl/t/203-final_method.t
index 5122ba5..ea98ca5 100644
--- a/compiler/perl/t/203-final_method.t
+++ b/compiler/perl/t/203-final_method.t
@@ -29,7 +29,6 @@ my %args = (
class_name => 'Neato::Foo',
param_list => $parser->parse('(Foo* self)'),
name => 'Return_An_Obj',
- parcel => 'Neato',
);
my $not_final_method = Clownfish::CFC::Model::Method->new(%args);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/300-variable.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/300-variable.t b/compiler/perl/t/300-variable.t
index 2ab2d62..86029b2 100644
--- a/compiler/perl/t/300-variable.t
+++ b/compiler/perl/t/300-variable.t
@@ -28,7 +28,6 @@ sub new_type { $parser->parse(shift) }
eval {
my $death = Clownfish::CFC::Model::Variable->new(
- parcel => $parcel,
name => 'foo',
type => new_type('int'),
extra_arg => undef,
@@ -37,24 +36,19 @@ eval {
like( $@, qr/extra_arg/, "Extra arg kills constructor" );
eval {
- my $death = Clownfish::CFC::Model::Variable->new(
- parcel => $parcel,
- name => 'foo',
- );
+ my $death = Clownfish::CFC::Model::Variable->new( name => 'foo' );
};
like( $@, qr/type/, "type is required" );
eval {
my $death = Clownfish::CFC::Model::Variable->new(
- parcel => $parcel,
- type => new_type('int32_t'),
+ type => new_type('int32_t'),
);
};
like( $@, qr/name/, "name is required" );
my $var = Clownfish::CFC::Model::Variable->new(
- parcel => $parcel,
- name => 'foo',
- type => new_type('float*')
+ name => 'foo',
+ type => new_type('float*'),
);
$var->resolve_type;
is( $var->local_c, 'float* foo', "local_c" );
@@ -62,9 +56,8 @@ is( $var->local_declaration, 'float* foo;', "declaration" );
ok( $var->local, "default to local access" );
$var = Clownfish::CFC::Model::Variable->new(
- parcel => $parcel,
- name => 'foo',
- type => new_type('float[1]')
+ name => 'foo',
+ type => new_type('float[1]'),
);
$var->resolve_type;
is( $var->local_c, 'float foo[1]',
@@ -75,7 +68,6 @@ my $lobclaw_class = $parser->parse(
"class Crustacean::Lobster::LobsterClaw nickname LobClaw {}",
);
$var = Clownfish::CFC::Model::Variable->new(
- parcel => 'Neato',
name => 'foo',
type => new_type("Foo*"),
class_name => 'Crustacean::Lobster::LobsterClaw',
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/401-class.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/401-class.t b/compiler/perl/t/401-class.t
index 3560dae..5380f1a 100644
--- a/compiler/perl/t/401-class.t
+++ b/compiler/perl/t/401-class.t
@@ -24,19 +24,16 @@ my $parser = Clownfish::CFC::Parser->new;
$parser->parse('parcel Neato;');
my $thing = Clownfish::CFC::Model::Variable->new(
- parcel => 'Neato',
class_name => 'Foo',
type => $parser->parse('Thing*'),
name => 'thing',
);
my $widget = Clownfish::CFC::Model::Variable->new(
- parcel => 'Neato',
class_name => 'Widget',
type => $parser->parse('Widget*'),
name => 'widget',
);
my $tread_water = Clownfish::CFC::Model::Function->new(
- parcel => 'Neato',
class_name => 'Foo',
return_type => $parser->parse('void'),
name => 'tread_water',
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/perl/t/403-parcel.t
----------------------------------------------------------------------
diff --git a/compiler/perl/t/403-parcel.t b/compiler/perl/t/403-parcel.t
index 1fd29a3..263e602 100644
--- a/compiler/perl/t/403-parcel.t
+++ b/compiler/perl/t/403-parcel.t
@@ -16,7 +16,7 @@
use strict;
use warnings;
-use Test::More tests => 38;
+use Test::More tests => 35;
use File::Spec::Functions qw( catfile );
BEGIN { use_ok('Clownfish::CFC::Model::Prereq') }
@@ -101,15 +101,6 @@ my $parcel = Clownfish::CFC::Model::Parcel->new(
$parcel->register;
is( $parcel->get_version->get_vstring, 'v0', "get_version" );
-my $thing = Clownfish::CFC::Model::Symbol->new(
- name => 'sym',
- parcel => 'Crustacean',
- exposure => 'parcel'
-);
-is( $thing->get_prefix, 'crust_', 'get_prefix with parcel' );
-is( $thing->get_Prefix, 'Crust_', 'get_Prefix with parcel' );
-is( $thing->get_PREFIX, 'CRUST_', 'get_PREFIx with parcel' );
-
Clownfish::CFC::Model::Parcel->reap_singletons();
{
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCCHtml.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCCHtml.c b/compiler/src/CFCCHtml.c
index 9cb680c..33ddd6e 100644
--- a/compiler/src/CFCCHtml.c
+++ b/compiler/src/CFCCHtml.c
@@ -489,6 +489,7 @@ S_html_create_description(CFCClass *klass) {
static char*
S_html_create_functions(CFCClass *klass) {
CFCFunction **functions = CFCClass_functions(klass);
+ const char *prefix = CFCClass_get_prefix(klass);
char *result = CFCUtil_strdup("");
for (int func_num = 0; functions[func_num] != NULL; func_num++) {
@@ -503,9 +504,6 @@ S_html_create_functions(CFCClass *klass) {
result = CFCUtil_cat(result, "<dt id=\"func_", name, "\">",
name, "</dt>\n", NULL);
- CFCParcel *parcel = CFCSymbol_get_parcel((CFCSymbol*)func);
- const char *prefix = CFCParcel_get_prefix(parcel);
-
char *short_sym = CFCFunction_short_func_sym(func, klass);
char *func_html = S_html_create_func(klass, func, prefix, short_sym);
result = CFCUtil_cat(result, func_html, NULL);
@@ -565,6 +563,7 @@ S_html_create_methods(CFCClass *klass) {
static char*
S_html_create_fresh_methods(CFCClass *klass, CFCClass *ancestor) {
CFCMethod **fresh_methods = CFCClass_fresh_methods(klass);
+ const char *prefix = CFCClass_get_prefix(klass);
const char *ancestor_name = CFCClass_get_class_name(ancestor);
char *result = CFCUtil_strdup("");
@@ -594,8 +593,6 @@ S_html_create_fresh_methods(CFCClass *klass, CFCClass *ancestor) {
}
result = CFCUtil_cat(result, "</dt>\n", NULL);
- CFCParcel *parcel = CFCSymbol_get_parcel((CFCSymbol*)method);
- const char *prefix = CFCParcel_get_PREFIX(parcel);
char *short_sym = CFCMethod_short_method_sym(method, klass);
char *method_html = S_html_create_func(klass, (CFCFunction*)method,
prefix, short_sym);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCCallable.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCCallable.c b/compiler/src/CFCCallable.c
index 4ab581e..a4f0e8d 100644
--- a/compiler/src/CFCCallable.c
+++ b/compiler/src/CFCCallable.c
@@ -25,7 +25,6 @@
#define CFC_NEED_CALLABLE_STRUCT_DEF
#include "CFCCallable.h"
#include "CFCClass.h"
-#include "CFCParcel.h"
#include "CFCType.h"
#include "CFCParamList.h"
#include "CFCVariable.h"
@@ -39,7 +38,7 @@ static const CFCMeta CFCCALLABLE_META = {
};
CFCCallable*
-CFCCallable_init(CFCCallable *self, CFCParcel *parcel, const char *exposure,
+CFCCallable_init(CFCCallable *self, const char *exposure,
const char *class_name, const char *name,
CFCType *return_type, CFCParamList *param_list,
CFCDocuComment *docucomment) {
@@ -48,7 +47,7 @@ CFCCallable_init(CFCCallable *self, CFCParcel *parcel, const char *exposure,
CFCUTIL_NULL_CHECK(class_name);
CFCUTIL_NULL_CHECK(return_type);
CFCUTIL_NULL_CHECK(param_list);
- CFCSymbol_init((CFCSymbol*)self, parcel, exposure, class_name, name);
+ CFCSymbol_init((CFCSymbol*)self, exposure, class_name, name);
self->return_type = (CFCType*)CFCBase_incref((CFCBase*)return_type);
self->param_list = (CFCParamList*)CFCBase_incref((CFCBase*)param_list);
self->docucomment = (CFCDocuComment*)CFCBase_incref((CFCBase*)docucomment);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCCallable.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCCallable.h b/compiler/src/CFCCallable.h
index 0a68e82..9bab598 100644
--- a/compiler/src/CFCCallable.h
+++ b/compiler/src/CFCCallable.h
@@ -25,7 +25,6 @@ extern "C" {
#endif
typedef struct CFCCallable CFCCallable;
-struct CFCParcel;
struct CFCType;
struct CFCDocuComment;
struct CFCParamList;
@@ -43,7 +42,6 @@ struct CFCCallable {
#endif
/**
- * @param parcel A Clownfish::CFC::Model::Parcel.
* @param exposure The callable's exposure (see
* L<Clownfish::CFC::Model::Symbol>).
* @param class_name The full name of the class in whose namespace the
@@ -57,10 +55,9 @@ struct CFCCallable {
* callable.
*/
CFCCallable*
-CFCCallable_init(CFCCallable *self, struct CFCParcel *parcel,
- const char *exposure, const char *class_name,
- const char *name, struct CFCType *return_type,
- struct CFCParamList *param_list,
+CFCCallable_init(CFCCallable *self, const char *exposure,
+ const char *class_name, const char *name,
+ struct CFCType *return_type, struct CFCParamList *param_list,
struct CFCDocuComment *docucomment);
void
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCClass.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCClass.c b/compiler/src/CFCClass.c
index 192723f..eb2ba7c 100644
--- a/compiler/src/CFCClass.c
+++ b/compiler/src/CFCClass.c
@@ -49,6 +49,7 @@ S_register(CFCClass *self);
struct CFCClass {
CFCSymbol symbol;
+ struct CFCParcel *parcel;
char *nickname;
int tree_grown;
CFCDocuComment *docucomment;
@@ -138,6 +139,7 @@ CFCClass_do_create(CFCClass *self, struct CFCParcel *parcel,
CFCDocuComment *docucomment, CFCFileSpec *file_spec,
const char *parent_class_name, int is_final, int is_inert,
int is_abstract) {
+ CFCUTIL_NULL_CHECK(parcel);
CFCUTIL_NULL_CHECK(class_name);
exposure = exposure ? exposure : "parcel";
name = name ? name : "class";
@@ -166,13 +168,14 @@ CFCClass_do_create(CFCClass *self, struct CFCParcel *parcel,
CFCUtil_die("Invalid nickname: '%s'", real_nickname);
}
- CFCSymbol_init((CFCSymbol*)self, parcel, exposure, class_name, name);
+ CFCSymbol_init((CFCSymbol*)self, exposure, class_name, name);
if (!is_inert
&& !parent_class_name
&& strcmp(class_name, "Clownfish::Obj") != 0
) {
parent_class_name = "Clownfish::Obj";
}
+ self->parcel = (CFCParcel*)CFCBase_incref((CFCBase*)parcel);
self->nickname = CFCUtil_strdup(real_nickname);
self->tree_grown = false;
self->parent = NULL;
@@ -273,6 +276,7 @@ S_free_cfcbase_array(CFCBase **array) {
void
CFCClass_destroy(CFCClass *self) {
+ CFCBase_decref((CFCBase*)self->parcel);
FREEMEM(self->nickname);
CFCBase_decref((CFCBase*)self->docucomment);
CFCBase_decref((CFCBase*)self->parent);
@@ -875,17 +879,17 @@ CFCClass_get_docucomment(CFCClass *self) {
const char*
CFCClass_get_prefix(CFCClass *self) {
- return CFCSymbol_get_prefix((CFCSymbol*)self);
+ return CFCParcel_get_prefix(self->parcel);
}
const char*
CFCClass_get_Prefix(CFCClass *self) {
- return CFCSymbol_get_Prefix((CFCSymbol*)self);
+ return CFCParcel_get_Prefix(self->parcel);
}
const char*
CFCClass_get_PREFIX(CFCClass *self) {
- return CFCSymbol_get_PREFIX((CFCSymbol*)self);
+ return CFCParcel_get_PREFIX(self->parcel);
}
const char*
@@ -895,6 +899,6 @@ CFCClass_get_class_name(CFCClass *self) {
CFCParcel*
CFCClass_get_parcel(CFCClass *self) {
- return CFCSymbol_get_parcel((CFCSymbol*)self);
+ return self->parcel;
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCClass.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCClass.h b/compiler/src/CFCClass.h
index a027242..a002663 100644
--- a/compiler/src/CFCClass.h
+++ b/compiler/src/CFCClass.h
@@ -41,7 +41,7 @@ struct CFCFileSpec;
/** Create and register a quasi-singleton. May only be called once for each
* unique parcel/class_name combination.
*
- * @param parcel See Clownfish::CFC::Model::Symbol.
+ * @param parcel A Clownfish::CFC::Model::Parcel.
* @param exposure See Clownfish::CFC::Model::Symbol.
* @param class_name See Clownfish::CFC::Model::Symbol.
* @param class_nickname The C nickname associated with the supplied class
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCFunction.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCFunction.c b/compiler/src/CFCFunction.c
index 791e882..d712403 100644
--- a/compiler/src/CFCFunction.c
+++ b/compiler/src/CFCFunction.c
@@ -26,7 +26,6 @@
#include "CFCCallable.h"
#include "CFCFunction.h"
#include "CFCClass.h"
-#include "CFCParcel.h"
#include "CFCType.h"
#include "CFCParamList.h"
#include "CFCVariable.h"
@@ -45,13 +44,12 @@ static const CFCMeta CFCFUNCTION_META = {
};
CFCFunction*
-CFCFunction_new(CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name, CFCType *return_type,
- CFCParamList *param_list, CFCDocuComment *docucomment,
- int is_inline) {
+CFCFunction_new(const char *exposure, const char *class_name, const char *name,
+ CFCType *return_type, CFCParamList *param_list,
+ CFCDocuComment *docucomment, int is_inline) {
CFCFunction *self = (CFCFunction*)CFCBase_allocate(&CFCFUNCTION_META);
- return CFCFunction_init(self, parcel, exposure, class_name, name,
- return_type, param_list, docucomment, is_inline);
+ return CFCFunction_init(self, exposure, class_name, name, return_type,
+ param_list, docucomment, is_inline);
}
static int
@@ -66,7 +64,7 @@ S_validate_function_name(const char *name) {
}
CFCFunction*
-CFCFunction_init(CFCFunction *self, CFCParcel *parcel, const char *exposure,
+CFCFunction_init(CFCFunction *self, const char *exposure,
const char *class_name, const char *name,
CFCType *return_type, CFCParamList *param_list,
CFCDocuComment *docucomment, int is_inline) {
@@ -75,7 +73,7 @@ CFCFunction_init(CFCFunction *self, CFCParcel *parcel, const char *exposure,
CFCBase_decref((CFCBase*)self);
CFCUtil_die("Invalid function name: '%s'", name);
}
- CFCCallable_init((CFCCallable*)self, parcel, exposure, class_name, name,
+ CFCCallable_init((CFCCallable*)self, exposure, class_name, name,
return_type, param_list, docucomment);
self->is_inline = is_inline;
return self;
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCFunction.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCFunction.h b/compiler/src/CFCFunction.h
index 0f3bd21..0793ab3 100644
--- a/compiler/src/CFCFunction.h
+++ b/compiler/src/CFCFunction.h
@@ -25,14 +25,12 @@ extern "C" {
#endif
typedef struct CFCFunction CFCFunction;
-struct CFCParcel;
struct CFCType;
struct CFCDocuComment;
struct CFCParamList;
struct CFCClass;
/**
- * @param parcel A Clownfish::CFC::Model::Parcel.
* @param exposure The function's exposure (see
* L<Clownfish::CFC::Model::Symbol>).
* @param class_name The full name of the class in whose namespace the
@@ -48,16 +46,14 @@ struct CFCClass;
* compiler.
*/
CFCFunction*
-CFCFunction_new(struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name,
+CFCFunction_new(const char *exposure, const char *class_name, const char *name,
struct CFCType *return_type, struct CFCParamList *param_list,
struct CFCDocuComment *docucomment, int is_inline);
CFCFunction*
-CFCFunction_init(CFCFunction *self, struct CFCParcel *parcel,
- const char *exposure, const char *class_name,
- const char *name, struct CFCType *return_type,
- struct CFCParamList *param_list,
+CFCFunction_init(CFCFunction *self, const char *exposure,
+ const char *class_name, const char *name,
+ struct CFCType *return_type, struct CFCParamList *param_list,
struct CFCDocuComment *docucomment, int is_inline);
void
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCGoClass.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCGoClass.c b/compiler/src/CFCGoClass.c
index 3c8afb7..cffa762 100644
--- a/compiler/src/CFCGoClass.c
+++ b/compiler/src/CFCGoClass.c
@@ -213,7 +213,7 @@ CFCGoClass_go_typing(CFCGoClass *self) {
}
}
- const char *sig = CFCGoMethod_get_sig(meth_binding);
+ const char *sig = CFCGoMethod_get_sig(meth_binding, self->client);
novel_iface = CFCUtil_cat(novel_iface, "\t", sig, "\n", NULL);
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCGoMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCGoMethod.c b/compiler/src/CFCGoMethod.c
index 87f062e..02d3779 100644
--- a/compiler/src/CFCGoMethod.c
+++ b/compiler/src/CFCGoMethod.c
@@ -85,13 +85,13 @@ CFCGoMethod_customize(CFCGoMethod *self, const char *sig) {
}
static void
-S_lazy_init_sig(CFCGoMethod *self) {
+S_lazy_init_sig(CFCGoMethod *self, CFCClass *invoker) {
if (self->sig || !self->method) {
return;
}
CFCMethod *method = self->method;
- CFCParcel *parcel = CFCMethod_get_parcel(method);
+ CFCParcel *parcel = CFCClass_get_parcel(invoker);
CFCType *return_type = CFCMethod_get_return_type(method);
char *name = CFCGoFunc_go_meth_name(CFCMethod_get_name(method));
char *go_ret_type = CFCType_is_void(return_type)
@@ -120,7 +120,7 @@ S_lazy_init_sig(CFCGoMethod *self) {
}
const char*
-CFCGoMethod_get_sig(CFCGoMethod *self) {
+CFCGoMethod_get_sig(CFCGoMethod *self, CFCClass *invoker) {
if (self->sig) {
return self->sig;
}
@@ -128,7 +128,7 @@ CFCGoMethod_get_sig(CFCGoMethod *self) {
return "";
}
else {
- S_lazy_init_sig(self);
+ S_lazy_init_sig(self, invoker);
return self->sig;
}
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCGoMethod.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCGoMethod.h b/compiler/src/CFCGoMethod.h
index 2d956e9..f2ca8da 100644
--- a/compiler/src/CFCGoMethod.h
+++ b/compiler/src/CFCGoMethod.h
@@ -44,7 +44,7 @@ CFCGoMethod_customize(CFCGoMethod *self, const char *sig);
/** Retrieve the Go interface method signature.
*/
const char*
-CFCGoMethod_get_sig(CFCGoMethod *self);
+CFCGoMethod_get_sig(CFCGoMethod *self, struct CFCClass *invoker);
char*
CFCGoMethod_func_def(CFCGoMethod *self, struct CFCClass *invoker);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCMethod.c b/compiler/src/CFCMethod.c
index 32b97fb..78180b4 100644
--- a/compiler/src/CFCMethod.c
+++ b/compiler/src/CFCMethod.c
@@ -25,7 +25,6 @@
#include "CFCClass.h"
#include "CFCUtil.h"
#include "CFCParamList.h"
-#include "CFCParcel.h"
#include "CFCDocuComment.h"
#include "CFCVariable.h"
@@ -51,13 +50,12 @@ static const CFCMeta CFCMETHOD_META = {
};
CFCMethod*
-CFCMethod_new(CFCParcel *parcel, const char *exposure, const char *class_name,
- const char *name, CFCType *return_type, CFCParamList *param_list,
+CFCMethod_new(const char *exposure, const char *class_name, const char *name,
+ CFCType *return_type, CFCParamList *param_list,
CFCDocuComment *docucomment, int is_final, int is_abstract) {
CFCMethod *self = (CFCMethod*)CFCBase_allocate(&CFCMETHOD_META);
- return CFCMethod_init(self, parcel, exposure, class_name, name,
- return_type, param_list, docucomment, is_final,
- is_abstract);
+ return CFCMethod_init(self, exposure, class_name, name, return_type,
+ param_list, docucomment, is_final, is_abstract);
}
static int
@@ -83,8 +81,8 @@ S_validate_meth_name(const char *meth_name) {
}
CFCMethod*
-CFCMethod_init(CFCMethod *self, CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name, CFCType *return_type,
+CFCMethod_init(CFCMethod *self, const char *exposure, const char *class_name,
+ const char *name, CFCType *return_type,
CFCParamList *param_list, CFCDocuComment *docucomment,
int is_final, int is_abstract) {
// Validate name.
@@ -95,21 +93,20 @@ CFCMethod_init(CFCMethod *self, CFCParcel *parcel, const char *exposure,
}
// Super-init.
- CFCCallable_init((CFCCallable*)self, parcel, exposure, class_name, name,
+ CFCCallable_init((CFCCallable*)self, exposure, class_name, name,
return_type, param_list, docucomment);
// Verify that the first element in the arg list is a self.
CFCVariable **args = CFCParamList_get_variables(param_list);
if (!args[0]) { CFCUtil_die("Missing 'self' argument"); }
CFCType *type = CFCVariable_get_type(args[0]);
- const char *specifier = CFCType_get_specifier(type);
- const char *prefix = CFCMethod_get_prefix(self);
+ const char *specifier = CFCType_get_specifier(type);
const char *last_colon = strrchr(class_name, ':');
const char *struct_sym = last_colon ? last_colon + 1 : class_name;
if (strcmp(specifier, struct_sym) != 0) {
- char *wanted = CFCUtil_sprintf("%s%s", prefix, struct_sym);
- int mismatch = strcmp(wanted, specifier);
- FREEMEM(wanted);
+ const char *first_underscore = strchr(specifier, '_');
+ int mismatch = !first_underscore
+ || strcmp(first_underscore + 1, struct_sym) != 0;
if (mismatch) {
CFCUtil_die("First arg type doesn't match class: '%s' '%s'",
class_name, specifier);
@@ -225,12 +222,11 @@ CFCMethod_override(CFCMethod *self, CFCMethod *orig) {
CFCMethod*
CFCMethod_finalize(CFCMethod *self) {
- CFCParcel *parcel = CFCMethod_get_parcel(self);
- const char *exposure = CFCMethod_get_exposure(self);
- const char *class_name = CFCMethod_get_class_name(self);
- const char *name = CFCMethod_get_name(self);
+ const char *exposure = CFCMethod_get_exposure(self);
+ const char *class_name = CFCMethod_get_class_name(self);
+ const char *name = CFCMethod_get_name(self);
CFCMethod *finalized
- = CFCMethod_new(parcel, exposure, class_name, name,
+ = CFCMethod_new(exposure, class_name, name,
self->callable.return_type,
self->callable.param_list,
self->callable.docucomment, true,
@@ -378,26 +374,6 @@ CFCMethod_self_type(CFCMethod *self) {
return CFCVariable_get_type(vars[0]);
}
-CFCParcel*
-CFCMethod_get_parcel(CFCMethod *self) {
- return CFCSymbol_get_parcel((CFCSymbol*)self);
-}
-
-const char*
-CFCMethod_get_prefix(CFCMethod *self) {
- return CFCSymbol_get_prefix((CFCSymbol*)self);
-}
-
-const char*
-CFCMethod_get_Prefix(CFCMethod *self) {
- return CFCSymbol_get_Prefix((CFCSymbol*)self);
-}
-
-const char*
-CFCMethod_get_PREFIX(CFCMethod *self) {
- return CFCSymbol_get_PREFIX((CFCSymbol*)self);
-}
-
const char*
CFCMethod_get_exposure(CFCMethod *self) {
return CFCSymbol_get_exposure((CFCSymbol*)self);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCMethod.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCMethod.h b/compiler/src/CFCMethod.h
index d8fb6b7..3f64c12 100644
--- a/compiler/src/CFCMethod.h
+++ b/compiler/src/CFCMethod.h
@@ -33,14 +33,12 @@ extern "C" {
#endif
typedef struct CFCMethod CFCMethod;
-struct CFCParcel;
struct CFCType;
struct CFCClass;
struct CFCParamList;
struct CFCDocuComment;
/**
- * @param parcel See Clownfish::CFC::Model::Function.
* @param exposure See Clownfish::CFC::Model::Symbol. Defaults to "parcel"
* if not supplied.
* @param class_name See Clownfish::CFC::Model::Function.
@@ -54,16 +52,15 @@ struct CFCDocuComment;
* @param is_abstract - Indicate whether the method is abstract.
*/
CFCMethod*
-CFCMethod_new(struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name,
+CFCMethod_new(const char *exposure, const char *class_name, const char *name,
struct CFCType *return_type, struct CFCParamList *param_list,
struct CFCDocuComment *docucomment, int is_final,
int is_abstract);
CFCMethod*
-CFCMethod_init(CFCMethod *self, struct CFCParcel *parcel,
- const char *exposure, const char *class_name, const char *name,
- struct CFCType *return_type, struct CFCParamList *param_list,
+CFCMethod_init(CFCMethod *self, const char *exposure, const char *class_name,
+ const char *name, struct CFCType *return_type,
+ struct CFCParamList *param_list,
struct CFCDocuComment *docucomment, int is_final,
int is_abstract);
@@ -205,18 +202,6 @@ CFCMethod_exclude_from_host(CFCMethod *self);
int
CFCMethod_excluded_from_host(CFCMethod *self);
-struct CFCParcel*
-CFCMethod_get_parcel(CFCMethod *self);
-
-const char*
-CFCMethod_get_prefix(CFCMethod *self);
-
-const char*
-CFCMethod_get_Prefix(CFCMethod *self);
-
-const char*
-CFCMethod_get_PREFIX(CFCMethod *self);
-
const char*
CFCMethod_get_exposure(CFCMethod *self);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCParseHeader.y
----------------------------------------------------------------------
diff --git a/compiler/src/CFCParseHeader.y b/compiler/src/CFCParseHeader.y
index 75c6515..7fa5304 100644
--- a/compiler/src/CFCParseHeader.y
+++ b/compiler/src/CFCParseHeader.y
@@ -70,13 +70,12 @@ S_new_var(CFCParser *state, char *exposure, char *modifiers, CFCType *type,
inert = true;
}
- CFCParcel *parcel = CFCParser_get_parcel(state);
- const char *class_name = NULL;
+ const char *class_name = NULL;
if (exposure && strcmp(exposure, "local") != 0) {
class_name = CFCParser_get_class_name(state);
}
- CFCVariable *var = CFCVariable_new(parcel, exposure, class_name, name,
- type, inert);
+ CFCVariable *var = CFCVariable_new(exposure, class_name, name, type,
+ inert);
/* Consume tokens. */
CFCBase_decref((CFCBase*)type);
@@ -88,7 +87,6 @@ static CFCBase*
S_new_sub(CFCParser *state, CFCDocuComment *docucomment,
char *exposure, char *modifiers, CFCType *type, char *name,
CFCParamList *param_list) {
- CFCParcel *parcel = CFCParser_get_parcel(state);
const char *class_name = CFCParser_get_class_name(state);
/* Find modifiers by scanning the list. */
@@ -115,15 +113,15 @@ S_new_sub(CFCParser *state, CFCDocuComment *docucomment,
if (is_final) {
CFCUtil_die("Inert functions must not be final");
}
- sub = (CFCBase*)CFCFunction_new(parcel, exposure, class_name, name,
- type, param_list, docucomment,
+ sub = (CFCBase*)CFCFunction_new(exposure, class_name, name, type,
+ param_list, docucomment,
is_inline);
}
else {
if (is_inline) {
CFCUtil_die("Methods must not be inline");
}
- sub = (CFCBase*)CFCMethod_new(parcel, exposure, class_name, name, type,
+ sub = (CFCBase*)CFCMethod_new(exposure, class_name, name, type,
param_list, docucomment, is_final,
is_abstract);
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCSymbol.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCSymbol.c b/compiler/src/CFCSymbol.c
index bfa985d..20f06a7 100644
--- a/compiler/src/CFCSymbol.c
+++ b/compiler/src/CFCSymbol.c
@@ -35,10 +35,9 @@ static const CFCMeta CFCSYMBOL_META = {
};
CFCSymbol*
-CFCSymbol_new(struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name) {
+CFCSymbol_new(const char *exposure, const char *class_name, const char *name) {
CFCSymbol *self = (CFCSymbol*)CFCBase_allocate(&CFCSYMBOL_META);
- return CFCSymbol_init(self, parcel, exposure, class_name, name);
+ return CFCSymbol_init(self, exposure, class_name, name);
}
static int
@@ -103,10 +102,9 @@ S_validate_identifier(const char *identifier) {
}
CFCSymbol*
-CFCSymbol_init(CFCSymbol *self, struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name) {
+CFCSymbol_init(CFCSymbol *self, const char *exposure, const char *class_name,
+ const char *name) {
// Validate.
- CFCUTIL_NULL_CHECK(parcel);
if (!S_validate_exposure(exposure)) {
CFCBase_decref((CFCBase*)self);
CFCUtil_die("Invalid exposure: '%s'", exposure ? exposure : "[NULL]");
@@ -121,7 +119,6 @@ CFCSymbol_init(CFCSymbol *self, struct CFCParcel *parcel, const char *exposure,
}
// Assign.
- self->parcel = (CFCParcel*)CFCBase_incref((CFCBase*)parcel);
self->exposure = CFCUtil_strdup(exposure);
self->class_name = CFCUtil_strdup(class_name);
self->name = CFCUtil_strdup(name);
@@ -131,7 +128,6 @@ CFCSymbol_init(CFCSymbol *self, struct CFCParcel *parcel, const char *exposure,
void
CFCSymbol_destroy(CFCSymbol *self) {
- CFCBase_decref((CFCBase*)self->parcel);
FREEMEM(self->exposure);
FREEMEM(self->class_name);
FREEMEM(self->name);
@@ -141,7 +137,6 @@ CFCSymbol_destroy(CFCSymbol *self) {
int
CFCSymbol_equals(CFCSymbol *self, CFCSymbol *other) {
if (strcmp(self->name, other->name) != 0) { return false; }
- if (!CFCParcel_equals(self->parcel, other->parcel)) { return false; }
if (strcmp(self->exposure, other->exposure) != 0) { return false; }
if (self->class_name) {
if (!other->class_name) { return false; }
@@ -190,11 +185,6 @@ CFCSymbol_short_sym(CFCSymbol *self, CFCClass *klass) {
return short_sym;
}
-struct CFCParcel*
-CFCSymbol_get_parcel(CFCSymbol *self) {
- return self->parcel;
-}
-
const char*
CFCSymbol_get_class_name(CFCSymbol *self) {
return self->class_name;
@@ -210,18 +200,3 @@ CFCSymbol_get_name(CFCSymbol *self) {
return self->name;
}
-const char*
-CFCSymbol_get_prefix(CFCSymbol *self) {
- return CFCParcel_get_prefix(self->parcel);
-}
-
-const char*
-CFCSymbol_get_Prefix(CFCSymbol *self) {
- return CFCParcel_get_Prefix(self->parcel);
-}
-
-const char*
-CFCSymbol_get_PREFIX(CFCSymbol *self) {
- return CFCParcel_get_PREFIX(self->parcel);
-}
-
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCSymbol.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCSymbol.h b/compiler/src/CFCSymbol.h
index 2e365af..599138c 100644
--- a/compiler/src/CFCSymbol.h
+++ b/compiler/src/CFCSymbol.h
@@ -37,7 +37,6 @@ struct CFCParcel;
#include "CFCBase.h"
struct CFCSymbol {
CFCBase base;
- struct CFCParcel *parcel;
char *exposure;
char *class_name;
char *name;
@@ -52,7 +51,6 @@ int
CFCSymbol_validate_class_name_component(const char *name);
/**
- * @param parcel A Clownfish::CFC::Model::Parcel.
* @param exposure The scope in which the symbol is exposed. Must be
* 'public', 'parcel', 'private', or 'local'.
* @param class_name A optional class name, consisting of one or more
@@ -62,12 +60,11 @@ CFCSymbol_validate_class_name_component(const char *name);
* @param name The local identifier for the symbol.
*/
CFCSymbol*
-CFCSymbol_new(struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name);
+CFCSymbol_new(const char *exposure, const char *class_name, const char *name);
CFCSymbol*
-CFCSymbol_init(CFCSymbol *self, struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name);
+CFCSymbol_init(CFCSymbol *self, const char *exposure, const char *class_name,
+ const char *name);
void
CFCSymbol_destroy(CFCSymbol *self);
@@ -77,9 +74,6 @@ CFCSymbol_destroy(CFCSymbol *self);
int
CFCSymbol_equals(CFCSymbol *self, CFCSymbol *other);
-struct CFCParcel*
-CFCSymbol_get_parcel(CFCSymbol *self);
-
// May be NULL.
const char*
CFCSymbol_get_class_name(CFCSymbol *self);
@@ -124,21 +118,6 @@ CFCSymbol_short_sym(CFCSymbol *self, struct CFCClass *klass);
char*
CFCSymbol_full_sym(CFCSymbol *self, struct CFCClass *klass);
-/** Get the Symbol's all-lowercase prefix, delegating to `parcel`.
- */
-const char*
-CFCSymbol_get_prefix(CFCSymbol *self);
-
-/** Get the Symbol's Titlecase prefix, delegating to `parcel`.
- */
-const char*
-CFCSymbol_get_Prefix(CFCSymbol *self);
-
-/** Get the Symbol's all-uppercase prefix, delegating to `parcel`.
- */
-const char*
-CFCSymbol_get_PREFIX(CFCSymbol *self);
-
#ifdef __cplusplus
}
#endif
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCTestClass.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestClass.c b/compiler/src/CFCTestClass.c
index 7f0e871..66d1cbc 100644
--- a/compiler/src/CFCTestClass.c
+++ b/compiler/src/CFCTestClass.c
@@ -65,17 +65,16 @@ S_run_tests(CFCTest *test) {
{
CFCType *thing_type = CFCTest_parse_type(test, parser, "Thing*");
- thing = CFCVariable_new(neato, NULL, "Foo", "thing", thing_type, 0);
+ thing = CFCVariable_new(NULL, "Foo", "thing", thing_type, 0);
CFCType *widget_type = CFCTest_parse_type(test, parser, "Widget*");
- widget = CFCVariable_new(neato, NULL, "Widget", "widget", widget_type,
- 0);
+ widget = CFCVariable_new(NULL, "Widget", "widget", widget_type, 0);
CFCType *return_type = CFCTest_parse_type(test, parser, "void");
CFCParamList *param_list
= CFCTest_parse_param_list(test, parser, "()");
tread_water
- = CFCFunction_new(neato, NULL, "Foo", "tread_water", return_type,
+ = CFCFunction_new(NULL, "Foo", "tread_water", return_type,
param_list, NULL, 0);
CFCBase_decref((CFCBase*)thing_type);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCTestFunction.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestFunction.c b/compiler/src/CFCTestFunction.c
index 9ad7e4d..1d54537 100644
--- a/compiler/src/CFCTestFunction.c
+++ b/compiler/src/CFCTestFunction.c
@@ -43,9 +43,8 @@ S_run_tests(CFCTest *test) {
CFCParamList *param_list
= CFCTest_parse_param_list(test, parser, "(int32_t some_num)");
CFCFunction *func
- = CFCFunction_new(neato_parcel, NULL, "Neato::Foo",
- "return_an_obj", return_type, param_list, NULL,
- 0);
+ = CFCFunction_new(NULL, "Neato::Foo", "return_an_obj", return_type,
+ param_list, NULL, 0);
OK(test, func != NULL, "new");
CFCBase_decref((CFCBase*)return_type);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCTestMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestMethod.c b/compiler/src/CFCTestMethod.c
index d0dc193..6e20069 100644
--- a/compiler/src/CFCTestMethod.c
+++ b/compiler/src/CFCTestMethod.c
@@ -65,24 +65,24 @@ S_run_basic_tests(CFCTest *test) {
= CFCTest_parse_param_list(test, parser,
"(Foo *self, int32_t count = 0)");
CFCMethod *method
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Return_An_Obj",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Return_An_Obj", return_type,
+ param_list, NULL, 0, 0);
OK(test, method != NULL, "new");
OK(test, CFCSymbol_parcel((CFCSymbol*)method),
"parcel exposure by default");
{
CFCMethod *dupe
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Return_An_Obj",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Return_An_Obj", return_type,
+ param_list, NULL, 0, 0);
OK(test, CFCMethod_compatible(method, dupe), "compatible");
CFCBase_decref((CFCBase*)dupe);
}
{
CFCMethod *name_differs
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Eat",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Eat", return_type, param_list,
+ NULL, 0, 0);
OK(test, !CFCMethod_compatible(method, name_differs),
"different name spoils compatible");
OK(test, !CFCMethod_compatible(name_differs, method),
@@ -109,9 +109,8 @@ S_run_basic_tests(CFCTest *test) {
CFCParamList *other_param_list
= CFCTest_parse_param_list(test, parser, param_strings[i]);
CFCMethod *other
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo",
- "Return_An_Obj", return_type, other_param_list,
- NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Return_An_Obj",
+ return_type, other_param_list, NULL, 0, 0);
OK(test, !CFCMethod_compatible(method, other),
"%s spoils compatible", test_names[i]);
OK(test, !CFCMethod_compatible(other, method),
@@ -126,8 +125,8 @@ S_run_basic_tests(CFCTest *test) {
= CFCTest_parse_param_list(test, parser,
"(Bar *self, int32_t count = 0)");
CFCMethod *self_differs
- = CFCMethod_new(neato_parcel, NULL, "Neato::Bar", "Return_An_Obj",
- return_type, self_differs_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Bar", "Return_An_Obj", return_type,
+ self_differs_list, NULL, 0, 0);
OK(test, CFCMethod_compatible(method, self_differs),
"different self type still compatible(),"
" since can't test inheritance");
@@ -139,8 +138,8 @@ S_run_basic_tests(CFCTest *test) {
{
CFCMethod *aliased
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Aliased",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Aliased", return_type,
+ param_list, NULL, 0, 0);
OK(test, !CFCMethod_get_host_alias(aliased),
"no host alias by default");
CFCMethod_set_host_alias(aliased, "Host_Alias");
@@ -151,8 +150,8 @@ S_run_basic_tests(CFCTest *test) {
{
CFCMethod *excluded
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Excluded",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Excluded", return_type,
+ param_list, NULL, 0, 0);
OK(test, !CFCMethod_excluded_from_host(excluded),
"not excluded by default");
CFCMethod_exclude_from_host(excluded);
@@ -214,15 +213,14 @@ S_run_overridden_tests(CFCTest *test) {
CFCParamList *param_list
= CFCTest_parse_param_list(test, parser, "(Foo *self)");
CFCMethod *orig
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Return_An_Obj",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Return_An_Obj", return_type,
+ param_list, NULL, 0, 0);
CFCParamList *overrider_param_list
= CFCTest_parse_param_list(test, parser, "(FooJr *self)");
CFCMethod *overrider
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo::FooJr",
- "Return_An_Obj", return_type, overrider_param_list,
- NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo::FooJr", "Return_An_Obj",
+ return_type, overrider_param_list, NULL, 0, 0);
CFCMethod_override(overrider, orig);
OK(test, !CFCMethod_novel(overrider),
@@ -253,8 +251,8 @@ S_run_final_tests(CFCTest *test) {
= CFCTest_parse_param_list(test, parser, "(Foo *self)");
CFCMethod *not_final
- = CFCMethod_new(neato_parcel, NULL, "Neato::Foo", "Return_An_Obj",
- return_type, param_list, NULL, 0, 0);
+ = CFCMethod_new(NULL, "Neato::Foo", "Return_An_Obj", return_type,
+ param_list, NULL, 0, 0);
CFCMethod_resolve_types(not_final);
CFCMethod *final = CFCMethod_finalize(not_final);
OK(test, CFCMethod_compatible(not_final, final),
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCTestParcel.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestParcel.c b/compiler/src/CFCTestParcel.c
index 3003173..8d57b0c 100644
--- a/compiler/src/CFCTestParcel.c
+++ b/compiler/src/CFCTestParcel.c
@@ -41,7 +41,7 @@ S_run_parcel_tests(CFCTest *test);
const CFCTestBatch CFCTEST_BATCH_PARCEL = {
"Clownfish::CFC::Model::Parcel",
- 32,
+ 29,
S_run_tests
};
@@ -118,15 +118,6 @@ S_run_parcel_tests(CFCTest *test) {
STR_EQ(test, CFCVersion_get_vstring(CFCParcel_get_version(parcel)),
"v0", "get_version");
- CFCSymbol *thing = CFCSymbol_new(parcel, "parcel", NULL, "sym");
- STR_EQ(test, CFCSymbol_get_prefix(thing), "crust_",
- "get_prefix with parcel");
- STR_EQ(test, CFCSymbol_get_Prefix(thing), "Crust_",
- "get_Prefix with parcel");
- STR_EQ(test, CFCSymbol_get_PREFIX(thing), "CRUST_",
- "get_PREFIX with parcel");
-
- CFCBase_decref((CFCBase*)thing);
CFCBase_decref((CFCBase*)parcel);
CFCParcel_reap_singletons();
}
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCTestSymbol.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestSymbol.c b/compiler/src/CFCTestSymbol.c
index 11a2c03..bf267e4 100644
--- a/compiler/src/CFCTestSymbol.c
+++ b/compiler/src/CFCTestSymbol.c
@@ -32,7 +32,7 @@ S_run_tests(CFCTest *test);
const CFCTestBatch CFCTEST_BATCH_SYMBOL = {
"Clownfish::CFC::Model::Symbol",
- 27,
+ 22,
S_run_tests
};
@@ -51,8 +51,7 @@ S_run_tests(CFCTest *test) {
CFCSymbol_local
};
for (int i = 0; i < 4; ++i) {
- CFCSymbol *symbol
- = CFCSymbol_new(parcel, exposures[i], NULL, "sym");
+ CFCSymbol *symbol = CFCSymbol_new(exposures[i], NULL, "sym");
for (int j = 0; j < 4; ++j) {
int has_exposure = accessors[j](symbol);
if (i == j) {
@@ -68,9 +67,8 @@ S_run_tests(CFCTest *test) {
}
{
- CFCSymbol *foo = CFCSymbol_new(parcel, "parcel", "Foo", "sym");
- CFCSymbol *foo_jr
- = CFCSymbol_new(parcel, "parcel", "Foo::FooJr", "sym");
+ CFCSymbol *foo = CFCSymbol_new("parcel", "Foo", "sym");
+ CFCSymbol *foo_jr = CFCSymbol_new("parcel", "Foo::FooJr", "sym");
int equal = CFCSymbol_equals(foo, foo_jr);
OK(test, !equal, "different class_name spoils equals");
@@ -82,10 +80,8 @@ S_run_tests(CFCTest *test) {
}
{
- CFCSymbol *public_exposure
- = CFCSymbol_new(parcel, "public", NULL, "sym");
- CFCSymbol *parcel_exposure
- = CFCSymbol_new(parcel, "parcel", NULL, "sym");
+ CFCSymbol *public_exposure = CFCSymbol_new("public", NULL, "sym");
+ CFCSymbol *parcel_exposure = CFCSymbol_new("parcel", NULL, "sym");
int equal = CFCSymbol_equals(public_exposure, parcel_exposure);
OK(test, !equal, "different exposure spoils equals");
CFCBase_decref((CFCBase*)public_exposure);
@@ -93,38 +89,8 @@ S_run_tests(CFCTest *test) {
}
{
- CFCParcel *lucifer_parcel
- = CFCParcel_new("Lucifer", NULL, NULL, NULL);
- CFCParcel_register(lucifer_parcel);
- CFCSymbol *lucifer
- = CFCSymbol_new(lucifer_parcel, "parcel", NULL, "sym");
-
- CFCParcel *symbol_parcel = CFCSymbol_get_parcel(lucifer);
- OK(test, symbol_parcel == lucifer_parcel, "derive parcel");
- const char *prefix = CFCSymbol_get_prefix(lucifer);
- STR_EQ(test, prefix, "lucifer_", "get_prefix");
- const char *Prefix = CFCSymbol_get_Prefix(lucifer);
- STR_EQ(test, Prefix, "Lucifer_", "get_Prefix");
- const char *PREFIX = CFCSymbol_get_PREFIX(lucifer);
- STR_EQ(test, PREFIX, "LUCIFER_", "get_PREFIX");
-
- CFCParcel *luser_parcel = CFCParcel_new("Luser", NULL, NULL, NULL);
- CFCParcel_register(luser_parcel);
- CFCSymbol *luser
- = CFCSymbol_new(luser_parcel, "parcel", NULL, "sym");
- int equal = CFCSymbol_equals(lucifer, luser);
- OK(test, !equal, "different exposure spoils equals");
-
- CFCBase_decref((CFCBase*)lucifer_parcel);
- CFCBase_decref((CFCBase*)lucifer);
- CFCBase_decref((CFCBase*)luser_parcel);
- CFCBase_decref((CFCBase*)luser);
- }
-
- {
- CFCSymbol *ooga = CFCSymbol_new(parcel, "parcel", NULL, "ooga");
- CFCSymbol *booga
- = CFCSymbol_new(parcel, "parcel", NULL, "booga");
+ CFCSymbol *ooga = CFCSymbol_new("parcel", NULL, "ooga");
+ CFCSymbol *booga = CFCSymbol_new("parcel", NULL, "booga");
int equal = CFCSymbol_equals(ooga, booga);
OK(test, !equal, "different name spoils equals");
CFCBase_decref((CFCBase*)ooga);
@@ -137,8 +103,7 @@ S_run_tests(CFCTest *test) {
CFCClass *ork
= CFCClass_create(eep_parcel, NULL, "Op::Ork", NULL, NULL, NULL,
NULL, NULL, false, false, false);
- CFCSymbol *eep
- = CFCSymbol_new(eep_parcel, "parcel", "Op::Ork", "ah_ah");
+ CFCSymbol *eep = CFCSymbol_new("parcel", "Op::Ork", "ah_ah");
char *short_sym = CFCSymbol_short_sym(eep, ork);
STR_EQ(test, short_sym, "Ork_ah_ah", "short_sym");
FREEMEM(short_sym);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCTestVariable.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestVariable.c b/compiler/src/CFCTestVariable.c
index 776efff..203ac90 100644
--- a/compiler/src/CFCTestVariable.c
+++ b/compiler/src/CFCTestVariable.c
@@ -48,8 +48,7 @@ S_run_tests(CFCTest *test) {
{
CFCType *type = CFCTest_parse_type(test, parser, "float*");
- CFCVariable *var
- = CFCVariable_new(neato_parcel, NULL, NULL, "foo", type, 0);
+ CFCVariable *var = CFCVariable_new(NULL, NULL, "foo", type, 0);
CFCVariable_resolve_type(var);
STR_EQ(test, CFCVariable_local_c(var), "float* foo", "local_c");
STR_EQ(test, CFCVariable_local_declaration(var), "float* foo;",
@@ -62,8 +61,7 @@ S_run_tests(CFCTest *test) {
{
CFCType *type = CFCTest_parse_type(test, parser, "float[1]");
- CFCVariable *var
- = CFCVariable_new(neato_parcel, NULL, NULL, "foo", type, 0);
+ CFCVariable *var = CFCVariable_new(NULL, NULL, "foo", type, 0);
CFCVariable_resolve_type(var);
STR_EQ(test, CFCVariable_local_c(var), "float foo[1]",
"to_c appends array to var name rather than type specifier");
@@ -75,9 +73,8 @@ S_run_tests(CFCTest *test) {
{
CFCType *type = CFCTest_parse_type(test, parser, "Foo*");
CFCVariable *var
- = CFCVariable_new(neato_parcel, NULL,
- "Crustacean::Lobster::LobsterClaw", "foo", type,
- 0);
+ = CFCVariable_new(NULL, "Crustacean::Lobster::LobsterClaw", "foo",
+ type, 0);
CFCVariable_resolve_type(var);
CFCClass *ork
= CFCClass_create(neato_parcel, NULL,
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCVariable.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCVariable.c b/compiler/src/CFCVariable.c
index 507f65d..5b6804e 100644
--- a/compiler/src/CFCVariable.c
+++ b/compiler/src/CFCVariable.c
@@ -49,25 +49,23 @@ static void
S_generate_c_strings(CFCVariable *self);
CFCVariable*
-CFCVariable_new(struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name, struct CFCType *type,
- int inert) {
+CFCVariable_new(const char *exposure, const char *class_name, const char *name,
+ struct CFCType *type, int inert) {
CFCVariable *self = (CFCVariable*)CFCBase_allocate(&CFCVARIABLE_META);
- return CFCVariable_init(self, parcel, exposure, class_name, name, type,
- inert);
+ return CFCVariable_init(self, exposure, class_name, name, type, inert);
}
CFCVariable*
-CFCVariable_init(CFCVariable *self, struct CFCParcel *parcel,
- const char *exposure, const char *class_name,
- const char *name, struct CFCType *type, int inert) {
+CFCVariable_init(CFCVariable *self, const char *exposure,
+ const char *class_name, const char *name,
+ struct CFCType *type, int inert) {
// Validate params.
CFCUTIL_NULL_CHECK(type);
// Default exposure to "local".
const char *real_exposure = exposure ? exposure : "local";
- CFCSymbol_init((CFCSymbol*)self, parcel, real_exposure, class_name, name);
+ CFCSymbol_init((CFCSymbol*)self, real_exposure, class_name, name);
// Assign type, inert.
self->type = (CFCType*)CFCBase_incref((CFCBase*)type);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/ad6e0898/compiler/src/CFCVariable.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCVariable.h b/compiler/src/CFCVariable.h
index ff5b6d2..a46eeaf 100644
--- a/compiler/src/CFCVariable.h
+++ b/compiler/src/CFCVariable.h
@@ -39,20 +39,19 @@ struct CFCParcel;
struct CFCType;
/**
- * @param type A Clownfish::CFC::Model::Type.
- * @param name The variable's name, without any namespacing prefixes.
* @param exposure See Clownfish::CFC::Model::Symbol.
* @param class_name See Clownfish::CFC::Model::Symbol.
+ * @param name The variable's name, without any namespacing prefixes.
+ * @param type A Clownfish::CFC::Model::Type.
*/
CFCVariable*
-CFCVariable_new(struct CFCParcel *parcel, const char *exposure,
- const char *class_name, const char *name, struct CFCType *type,
- int inert);
+CFCVariable_new(const char *exposure, const char *class_name, const char *name,
+ struct CFCType *type, int inert);
CFCVariable*
-CFCVariable_init(CFCVariable *self, struct CFCParcel *parcel,
- const char *exposure, const char *class_name,
- const char *name, struct CFCType *type, int inert);
+CFCVariable_init(CFCVariable *self, const char *exposure,
+ const char *class_name, const char *name,
+ struct CFCType *type, int inert);
void
CFCVariable_resolve_type(CFCVariable *self);