Commit 8bc6b51a authored by Miro Knejp's avatar Miro Knejp

Removed special logic for "const" placement

The compiler doesn't care and this works with all types, pointers, refs.
parent 0fbd8647
...@@ -88,7 +88,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) { ...@@ -88,7 +88,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
for (c <- consts) { for (c <- consts) {
w.wl w.wl
writeDoc(w, c.doc) writeDoc(w, c.doc)
w.wl(s"static const ${marshal.fieldType(c.ty)} ${idCpp.const(c.ident)};") w.wl(s"static ${marshal.fieldType(c.ty)} const ${idCpp.const(c.ident)};")
} }
} }
...@@ -121,7 +121,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) { ...@@ -121,7 +121,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
val skipFirst = SkipFirst() val skipFirst = SkipFirst()
for (c <- consts) { for (c <- consts) {
skipFirst{ w.wl } skipFirst{ w.wl }
w.w(s"const ${marshal.fieldType(c.ty)} $selfName::${idCpp.const(c.ident)} = ") w.w(s"${marshal.fieldType(c.ty)} const $selfName::${idCpp.const(c.ident)} = ")
writeCppConst(w, c.ty, c.value) writeCppConst(w, c.ty, c.value)
w.wl(";") w.wl(";")
} }
......
...@@ -70,12 +70,8 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) { ...@@ -70,12 +70,8 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
def writeObjcConstVariable(w: IndentWriter, c: Const, s: String): Unit = { def writeObjcConstVariable(w: IndentWriter, c: Const, s: String): Unit = {
val nullability = marshal.nullability(c.ty.resolved).fold("")(" __" + _) val nullability = marshal.nullability(c.ty.resolved).fold("")(" __" + _)
val td = marshal.fqFieldType(c.ty) + nullability val td = marshal.fqFieldType(c.ty) + nullability
c.ty.resolved.base match {
// MBinary | MList | MSet | MMap are not allowed for constants. // MBinary | MList | MSet | MMap are not allowed for constants.
// Primitives should be `const type`. All others are pointers and should be `type * const` w.w(s"${td} const $s${idObjc.const(c.ident)}")
case t: MPrimitive => w.w(s"const ${td} $s${idObjc.const(c.ident)}")
case _ => w.w(s"${td} const $s${idObjc.const(c.ident)}")
}
} }
def generateObjcConstants(w: IndentWriter, consts: Seq[Const], selfName: String) = { def generateObjcConstants(w: IndentWriter, consts: Seq[Const], selfName: String) = {
......
...@@ -3,22 +3,22 @@ ...@@ -3,22 +3,22 @@
#include "constants.hpp" // my header #include "constants.hpp" // my header
const bool Constants::BOOL_CONSTANT = true; bool const Constants::BOOL_CONSTANT = true;
const int8_t Constants::I8_CONSTANT = 1; int8_t const Constants::I8_CONSTANT = 1;
const int16_t Constants::I16_CONSTANT = 2; int16_t const Constants::I16_CONSTANT = 2;
const int32_t Constants::I32_CONSTANT = 3; int32_t const Constants::I32_CONSTANT = 3;
const int64_t Constants::I64_CONSTANT = 4; int64_t const Constants::I64_CONSTANT = 4;
const double Constants::F64_CONSTANT = 5.0; double const Constants::F64_CONSTANT = 5.0;
const std::string Constants::STRING_CONSTANT = "string-constant"; std::string const Constants::STRING_CONSTANT = "string-constant";
const std::experimental::optional<int32_t> Constants::OPTIONAL_INTEGER_CONSTANT = 1; std::experimental::optional<int32_t> const Constants::OPTIONAL_INTEGER_CONSTANT = 1;
const Constants Constants::OBJECT_CONSTANT = Constants( Constants const Constants::OBJECT_CONSTANT = Constants(
Constants::I32_CONSTANT /* some_integer */ , Constants::I32_CONSTANT /* some_integer */ ,
Constants::STRING_CONSTANT /* some_string */ ); Constants::STRING_CONSTANT /* some_string */ );
...@@ -10,23 +10,23 @@ ...@@ -10,23 +10,23 @@
struct Constants final { struct Constants final {
static const bool BOOL_CONSTANT; static bool const BOOL_CONSTANT;
static const int8_t I8_CONSTANT; static int8_t const I8_CONSTANT;
static const int16_t I16_CONSTANT; static int16_t const I16_CONSTANT;
static const int32_t I32_CONSTANT; static int32_t const I32_CONSTANT;
static const int64_t I64_CONSTANT; static int64_t const I64_CONSTANT;
static const double F64_CONSTANT; static double const F64_CONSTANT;
static const std::string STRING_CONSTANT; static std::string const STRING_CONSTANT;
static const std::experimental::optional<int32_t> OPTIONAL_INTEGER_CONSTANT; static std::experimental::optional<int32_t> const OPTIONAL_INTEGER_CONSTANT;
static const Constants OBJECT_CONSTANT; static Constants const OBJECT_CONSTANT;
int32_t some_integer; int32_t some_integer;
std::string some_string; std::string some_string;
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
#include "constants_interface.hpp" // my header #include "constants_interface.hpp" // my header
const bool ConstantsInterface::BOOL_CONSTANT = true; bool const ConstantsInterface::BOOL_CONSTANT = true;
const int8_t ConstantsInterface::I8_CONSTANT = 1; int8_t const ConstantsInterface::I8_CONSTANT = 1;
const int16_t ConstantsInterface::I16_CONSTANT = 2; int16_t const ConstantsInterface::I16_CONSTANT = 2;
const int32_t ConstantsInterface::I32_CONSTANT = 3; int32_t const ConstantsInterface::I32_CONSTANT = 3;
const int64_t ConstantsInterface::I64_CONSTANT = 4; int64_t const ConstantsInterface::I64_CONSTANT = 4;
const double ConstantsInterface::F64_CONSTANT = 5.0; double const ConstantsInterface::F64_CONSTANT = 5.0;
...@@ -9,17 +9,17 @@ class ConstantsInterface { ...@@ -9,17 +9,17 @@ class ConstantsInterface {
public: public:
virtual ~ConstantsInterface() {} virtual ~ConstantsInterface() {}
static const bool BOOL_CONSTANT; static bool const BOOL_CONSTANT;
static const int8_t I8_CONSTANT; static int8_t const I8_CONSTANT;
static const int16_t I16_CONSTANT; static int16_t const I16_CONSTANT;
static const int32_t I32_CONSTANT; static int32_t const I32_CONSTANT;
static const int64_t I64_CONSTANT; static int64_t const I64_CONSTANT;
static const double F64_CONSTANT; static double const F64_CONSTANT;
virtual void dummy() = 0; virtual void dummy() = 0;
}; };
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
@end @end
extern const BOOL DBConstantsBoolConstant; extern BOOL const DBConstantsBoolConstant;
extern const int8_t DBConstantsI8Constant; extern int8_t const DBConstantsI8Constant;
extern const int16_t DBConstantsI16Constant; extern int16_t const DBConstantsI16Constant;
extern const int32_t DBConstantsI32Constant; extern int32_t const DBConstantsI32Constant;
extern const int64_t DBConstantsI64Constant; extern int64_t const DBConstantsI64Constant;
extern const double DBConstantsF64Constant; extern double const DBConstantsF64Constant;
extern NSString * __nonnull const DBConstantsStringConstant; extern NSString * __nonnull const DBConstantsStringConstant;
extern NSNumber * __nullable const DBConstantsOptionalIntegerConstant; extern NSNumber * __nullable const DBConstantsOptionalIntegerConstant;
extern DBConstants * __nonnull const DBConstantsObjectConstant; extern DBConstants * __nonnull const DBConstantsObjectConstant;
...@@ -6,17 +6,17 @@ ...@@ -6,17 +6,17 @@
#pragma clang diagnostic push #pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable" #pragma clang diagnostic ignored "-Wunused-variable"
const BOOL DBConstantsBoolConstant = YES; BOOL const DBConstantsBoolConstant = YES;
const int8_t DBConstantsI8Constant = 1; int8_t const DBConstantsI8Constant = 1;
const int16_t DBConstantsI16Constant = 2; int16_t const DBConstantsI16Constant = 2;
const int32_t DBConstantsI32Constant = 3; int32_t const DBConstantsI32Constant = 3;
const int64_t DBConstantsI64Constant = 4; int64_t const DBConstantsI64Constant = 4;
const double DBConstantsF64Constant = 5.0; double const DBConstantsF64Constant = 5.0;
NSString * __nonnull const DBConstantsStringConstant = @"string-constant"; NSString * __nonnull const DBConstantsStringConstant = @"string-constant";
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
extern const BOOL DBConstantsInterfaceBoolConstant; extern BOOL const DBConstantsInterfaceBoolConstant;
extern const int8_t DBConstantsInterfaceI8Constant; extern int8_t const DBConstantsInterfaceI8Constant;
extern const int16_t DBConstantsInterfaceI16Constant; extern int16_t const DBConstantsInterfaceI16Constant;
extern const int32_t DBConstantsInterfaceI32Constant; extern int32_t const DBConstantsInterfaceI32Constant;
extern const int64_t DBConstantsInterfaceI64Constant; extern int64_t const DBConstantsInterfaceI64Constant;
extern const double DBConstantsInterfaceF64Constant; extern double const DBConstantsInterfaceF64Constant;
@interface DBConstantsInterface : NSObject @interface DBConstantsInterface : NSObject
......
...@@ -7,16 +7,16 @@ ...@@ -7,16 +7,16 @@
#pragma clang diagnostic push #pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable" #pragma clang diagnostic ignored "-Wunused-variable"
const BOOL DBConstantsInterfaceBoolConstant = YES; BOOL const DBConstantsInterfaceBoolConstant = YES;
const int8_t DBConstantsInterfaceI8Constant = 1; int8_t const DBConstantsInterfaceI8Constant = 1;
const int16_t DBConstantsInterfaceI16Constant = 2; int16_t const DBConstantsInterfaceI16Constant = 2;
const int32_t DBConstantsInterfaceI32Constant = 3; int32_t const DBConstantsInterfaceI32Constant = 3;
const int64_t DBConstantsInterfaceI64Constant = 4; int64_t const DBConstantsInterfaceI64Constant = 4;
const double DBConstantsInterfaceF64Constant = 5.0; double const DBConstantsInterfaceF64Constant = 5.0;
#pragma clang diagnostic pop #pragma clang diagnostic pop
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment