Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Start distinguishing concrete and type objects.
  • Loading branch information
jnthn committed Jan 6, 2013
1 parent b54b4fb commit 0c15d3d
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 14 deletions.
4 changes: 2 additions & 2 deletions src/org/perl6/nqp/sixmodel/KnowHOWMethods.java
Expand Up @@ -16,8 +16,8 @@ public void new_type(ThreadContext tc) {
SixModelObject self = Ops.posparam_o(tc.curFrame, 0);
String repr_arg = Ops.namedparam_opt_s(tc.curFrame, "repr");
String name_arg = Ops.namedparam_opt_s(tc.curFrame, "name");
if (self == null || !(self instanceof KnowHOWREPRInstance))
throw new RuntimeException("KnowHOW methods must be called on object instance with REPR KnowHOWREPR");
if (self == null || !(self.st.REPR instanceof KnowHOWREPR))
throw new RuntimeException("KnowHOW methods must be called on object with REPR KnowHOWREPR");

/* We first create a new HOW instance. */
SixModelObject HOW = self.st.REPR.allocate(tc, self.st);
Expand Down
5 changes: 5 additions & 0 deletions src/org/perl6/nqp/sixmodel/TypeObject.java
@@ -0,0 +1,5 @@
package org.perl6.nqp.sixmodel;

public class TypeObject extends SixModelObject {

}
3 changes: 2 additions & 1 deletion src/org/perl6/nqp/sixmodel/reprs/KnowHOWAttribute.java
Expand Up @@ -4,11 +4,12 @@
import org.perl6.nqp.sixmodel.REPR;
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.TypeObject;

public class KnowHOWAttribute extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new KnowHOWAttributeInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
2 changes: 1 addition & 1 deletion src/org/perl6/nqp/sixmodel/reprs/KnowHOWREPR.java
Expand Up @@ -6,7 +6,7 @@
public class KnowHOWREPR extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new KnowHOWREPRInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
2 changes: 1 addition & 1 deletion src/org/perl6/nqp/sixmodel/reprs/P6Opaque.java
Expand Up @@ -14,7 +14,7 @@ public class P6Opaque extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
st.REPRData = new P6OpaqueREPRData();
SixModelObject obj = new P6OpaqueBaseInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
3 changes: 2 additions & 1 deletion src/org/perl6/nqp/sixmodel/reprs/P6int.java
Expand Up @@ -5,11 +5,12 @@
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.StorageSpec;
import org.perl6.nqp.sixmodel.TypeObject;

public class P6int extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new P6intInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
3 changes: 2 additions & 1 deletion src/org/perl6/nqp/sixmodel/reprs/P6num.java
Expand Up @@ -5,11 +5,12 @@
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.StorageSpec;
import org.perl6.nqp.sixmodel.TypeObject;

public class P6num extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new P6numInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
3 changes: 2 additions & 1 deletion src/org/perl6/nqp/sixmodel/reprs/P6str.java
Expand Up @@ -5,11 +5,12 @@
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.StorageSpec;
import org.perl6.nqp.sixmodel.TypeObject;

public class P6str extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new P6strInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
2 changes: 1 addition & 1 deletion src/org/perl6/nqp/sixmodel/reprs/VMArray.java
Expand Up @@ -6,7 +6,7 @@
public class VMArray extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new VMArrayInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down
7 changes: 2 additions & 5 deletions src/org/perl6/nqp/sixmodel/reprs/VMHash.java
@@ -1,15 +1,12 @@
package org.perl6.nqp.sixmodel.reprs;

import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.REPR;
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.StorageSpec;
import org.perl6.nqp.sixmodel.*;

public class VMHash extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new VMHashInstance();
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
Expand Down

0 comments on commit 0c15d3d

Please sign in to comment.