From 9b3847e0b283050f2aaf345d70631b4c3b4e4392 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Fri, 14 Nov 2014 16:23:06 +0100
Subject: [PATCH] Test for sample references, crashes the compiler and not any
 python code for the test harness.

---
 compiler/CS_CodeGen.jrag     | 8 ++++++++
 compiler/Java_CodeGen.jrag   | 4 ++++
 compiler/Python_CodeGen.jrag | 4 ++++
 test/Makefile                | 2 +-
 test/ref.lc                  | 4 ++++
 5 files changed, 21 insertions(+), 1 deletion(-)
 create mode 100644 test/ref.lc

diff --git a/compiler/CS_CodeGen.jrag b/compiler/CS_CodeGen.jrag
index dc273e1..0423e06 100644
--- a/compiler/CS_CodeGen.jrag
+++ b/compiler/CS_CodeGen.jrag
@@ -720,6 +720,10 @@ aspect CS_Class {
 		    " not declared");
   }
 
+  public void SampleRefType.CS_emitTypePrefix(CS_env env) {
+    env.print("Sample");
+  }
+
   public void PrimType.CS_emitTypePrefix(CS_env env) {
     switch (getToken()) {
       case LABCOMM_STRING: { env.print("String"); } break;
@@ -844,6 +848,10 @@ aspect CS_Class {
 		    " not declared");
   }
 
+  public void SampleRefType.CS_emitType(CS_env env) {
+    env.print("Sample");
+  }
+
   public void VoidType.CS_emitType(CS_env env) {
     env.print("void");
   }
diff --git a/compiler/Java_CodeGen.jrag b/compiler/Java_CodeGen.jrag
index b3444ff..cfa38cc 100644
--- a/compiler/Java_CodeGen.jrag
+++ b/compiler/Java_CodeGen.jrag
@@ -938,6 +938,10 @@ aspect Java_Class {
 		    " not declared");
   }
 
+  public void SampleRefType.Java_emitType(Java_env env) {
+    env.print("Sample");
+  }
+
   public void VoidType.Java_emitType(Java_env env) {
     env.print("void");
   }
diff --git a/compiler/Python_CodeGen.jrag b/compiler/Python_CodeGen.jrag
index 4d19724..0063b30 100644
--- a/compiler/Python_CodeGen.jrag
+++ b/compiler/Python_CodeGen.jrag
@@ -152,6 +152,10 @@ aspect PythonTypes {
                     " not declared");
   }
 
+  public void SampleRefType.Python_genSignature(Python_env env) {
+    env.print("labcomm.SAMPLE_REF()");
+  }
+
   public void PrimType.Python_genSignature(Python_env env) {
     switch (getToken()) {
       case LABCOMM_BOOLEAN: { env.print("labcomm.BOOLEAN()"); } break;
diff --git a/test/Makefile b/test/Makefile
index 075d91f..128a5e4 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,4 +1,4 @@
-TESTS=basic simple nested
+TESTS=basic simple nested ref
 LABCOMM_JAR=../compiler/labcomm_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR)
 
diff --git a/test/ref.lc b/test/ref.lc
new file mode 100644
index 0000000..955d9a7
--- /dev/null
+++ b/test/ref.lc
@@ -0,0 +1,4 @@
+sample sample usedBoth;
+sample sample unusedEncoder;
+sample sample unusedDecoder;
+sample sample sample_list[4];
-- 
GitLab