From ad161e1569f65f949a41047a527abcaae2dfe429 Mon Sep 17 00:00:00 2001 From: David Renshaw Date: Wed, 1 Oct 2014 14:38:20 -0400 Subject: [PATCH] support enum constants --- compiler/src/main/cpp/capnpc-java.c++ | 2 +- compiler/src/test/scala/org/capnproto/EncodingTest.scala | 8 +++++--- compiler/src/test/schema/test.capnp | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/src/main/cpp/capnpc-java.c++ b/compiler/src/main/cpp/capnpc-java.c++ index 46d479a..6a0d466 100644 --- a/compiler/src/main/cpp/capnpc-java.c++ +++ b/compiler/src/main/cpp/capnpc-java.c++ @@ -331,7 +331,7 @@ private: EnumSchema schema = schemaLoader.get(type.getEnum().getTypeId()).asEnum(); if (value.getEnum() < schema.getEnumerants().size()) { return kj::strTree( - javaFullName(schema), "::", + javaFullName(schema), ".", toUpperCase(schema.getEnumerants()[value.getEnum()].getProto().getName())); } else { return kj::strTree("static_cast<", javaFullName(schema), ">(", value.getEnum(), ")"); diff --git a/compiler/src/test/scala/org/capnproto/EncodingTest.scala b/compiler/src/test/scala/org/capnproto/EncodingTest.scala index 40b8e70..7e55d97 100644 --- a/compiler/src/test/scala/org/capnproto/EncodingTest.scala +++ b/compiler/src/test/scala/org/capnproto/EncodingTest.scala @@ -1,9 +1,8 @@ package org.capnproto; import org.capnproto.test.Test._; - import org.scalatest.FunSuite - +import org.scalatest.Matchers._; class EncodingSuite extends FunSuite { @@ -83,7 +82,10 @@ class EncodingSuite extends FunSuite { assert(-6101065172474983726L == TestConstants.UINT64_CONST); assert(1234.5f == TestConstants.FLOAT32_CONST); - assert(-123e45 == TestConstants.FLOAT64_CONST); + (-123e45) should equal (TestConstants.FLOAT64_CONST); + + (TestConstants.ENUM_CONST) should equal (TestEnum.CORGE); + } test("GlobalConstants") { diff --git a/compiler/src/test/schema/test.capnp b/compiler/src/test/schema/test.capnp index 1cb55d8..9bf8dfd 100644 --- a/compiler/src/test/schema/test.capnp +++ b/compiler/src/test/schema/test.capnp @@ -197,6 +197,7 @@ struct TestConstants { const float32Const :Float32 = 1234.5; const float64Const :Float64 = -123e45; # ... + const enumConst :TestEnum = corge; } const globalInt :UInt32 = 12345; \ No newline at end of file