I have a strange issue... I have compiled the trunk tip code under cygwin and 
have a compiler for thrift.  I made two thrift files - one includes the other.  
When I try to compile it with -verbose, I can see that it is parsing both 
files, then it complains that the type in the second file is not declared!  If 
I compile the second file by itself, it works.  If I copy the contents of the 
second file into the first, it all works.  I thought include statements were 
supposed to work!!  Is this a known issue?  See below (I'm finishing up a 
single-file code generator plug-in for Visual Studio that will allow you to 
treat .thrift files just like any other code file in the IDE):

File 1:

namespace csharp CodeGenMultiFileIncludeTest

include "CodeGenTest2.thrift"

/* When using ThriftCodeGen inside VS, the resulting C# code should only define 
HostInfo for this file */

struct HostInfo {
  1: HostType type,
  2: string   desc,    /* a descriptive string about the OS */
  3: string   name,    /* the name of the host */
  4: string   implang  /* language client is implemented in */
}

File 2:

namespace csharp CodeGenMultiFileIncludeTest

/* When using ThriftCodeGen inside VS, the resulting C# code should only define 
HostType for this file */

enum HostType {
  WINDOWS = 1,
  LINUX = 2
}

Compiler output when I compile the second file - it works fine:

C:\temp>thrift  --gen csharp -v CodeGenTest2.thrift
Scanning /cygdrive/c/temp/CodeGenTest2.thrift for includes
Parsing /cygdrive/c/temp/CodeGenTest2.thrift for types
Program: /cygdrive/c/temp/CodeGenTest2.thrift
Generating "csharp"

Compiler output when I compile the first file which includes the second file - 
it fails!

C:\temp>thrift  --gen csharp -v CodeGenTest1.thrift
Scanning /cygdrive/c/temp/CodeGenTest1.thrift for includes
Scanning /cygdrive/c/temp/CodeGenTest2.thrift for includes
Parsing /cygdrive/c/temp/CodeGenTest2.thrift for types
Parsing /cygdrive/c/temp/CodeGenTest1.thrift for types
[ERROR:/cygdrive/c/temp/CodeGenTest1.thrift:8] (last token was 'HostType')
Type "HostType" has not been defined.

Thanks for any help... I'll dig into the generator code if I need to.


James E. King, III                       300 Innovative Way, Suite 301
Senior Software Engineer                 Nashua, NH 03062
Dell (EqualLogic) HIT Team (ASM)         (603) 589-5895

Reply via email to