diff --git a/java/src/main/java/com/kcl/api/Spec.java b/java/src/main/java/com/kcl/api/Spec.java
index 35294cb2..1534ab46 100644
--- a/java/src/main/java/com/kcl/api/Spec.java
+++ b/java/src/main/java/com/kcl/api/Spec.java
@@ -38779,6 +38779,20 @@ public interface VariableOrBuilder extends
* @return The bytes for value.
*/
com.google.protobuf.ByteString getValueBytes();
+
+ /**
+ * string type_name = 2;
+ *
+ * @return The typeName.
+ */
+ java.lang.String getTypeName();
+
+ /**
+ * string type_name = 2;
+ *
+ * @return The bytes for typeName.
+ */
+ com.google.protobuf.ByteString getTypeNameBytes();
}
/**
@@ -38796,6 +38810,7 @@ private Variable(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
private Variable() {
value_ = "";
+ typeName_ = "";
}
@java.lang.Override
@@ -38854,6 +38869,45 @@ public com.google.protobuf.ByteString getValueBytes() {
}
}
+ public static final int TYPE_NAME_FIELD_NUMBER = 2;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object typeName_ = "";
+
+ /**
+ * string type_name = 2;
+ *
+ * @return The typeName.
+ */
+ @java.lang.Override
+ public java.lang.String getTypeName() {
+ java.lang.Object ref = typeName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ typeName_ = s;
+ return s;
+ }
+ }
+
+ /**
+ * string type_name = 2;
+ *
+ * @return The bytes for typeName.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTypeNameBytes() {
+ java.lang.Object ref = typeName_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ typeName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -38873,6 +38927,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(value_)) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 1, value_);
}
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(typeName_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, typeName_);
+ }
getUnknownFields().writeTo(output);
}
@@ -38886,6 +38943,9 @@ public int getSerializedSize() {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(value_)) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, value_);
}
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(typeName_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, typeName_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -38903,6 +38963,8 @@ public boolean equals(final java.lang.Object obj) {
if (!getValue().equals(other.getValue()))
return false;
+ if (!getTypeName().equals(other.getTypeName()))
+ return false;
if (!getUnknownFields().equals(other.getUnknownFields()))
return false;
return true;
@@ -38917,6 +38979,8 @@ public int hashCode() {
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + VALUE_FIELD_NUMBER;
hash = (53 * hash) + getValue().hashCode();
+ hash = (37 * hash) + TYPE_NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getTypeName().hashCode();
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -39041,6 +39105,7 @@ public Builder clear() {
super.clear();
bitField0_ = 0;
value_ = "";
+ typeName_ = "";
return this;
}
@@ -39078,6 +39143,9 @@ private void buildPartial0(com.kcl.api.Spec.Variable result) {
if (((from_bitField0_ & 0x00000001) != 0)) {
result.value_ = value_;
}
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.typeName_ = typeName_;
+ }
}
@java.lang.Override
@@ -39130,6 +39198,11 @@ public Builder mergeFrom(com.kcl.api.Spec.Variable other) {
bitField0_ |= 0x00000001;
onChanged();
}
+ if (!other.getTypeName().isEmpty()) {
+ typeName_ = other.typeName_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -39159,6 +39232,11 @@ public Builder mergeFrom(com.google.protobuf.CodedInputStream input,
bitField0_ |= 0x00000001;
break;
} // case 10
+ case 18: {
+ typeName_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
@@ -39262,6 +39340,91 @@ public Builder setValueBytes(com.google.protobuf.ByteString value) {
return this;
}
+ private java.lang.Object typeName_ = "";
+
+ /**
+ * string type_name = 2;
+ *
+ * @return The typeName.
+ */
+ public java.lang.String getTypeName() {
+ java.lang.Object ref = typeName_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ typeName_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ * string type_name = 2;
+ *
+ * @return The bytes for typeName.
+ */
+ public com.google.protobuf.ByteString getTypeNameBytes() {
+ java.lang.Object ref = typeName_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b = com.google.protobuf.ByteString
+ .copyFromUtf8((java.lang.String) ref);
+ typeName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ * string type_name = 2;
+ *
+ * @param value
+ * The typeName to set.
+ *
+ * @return This builder for chaining.
+ */
+ public Builder setTypeName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ typeName_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ * string type_name = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTypeName() {
+ typeName_ = getDefaultInstance().getTypeName();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ * string type_name = 2;
+ *
+ * @param value
+ * The bytes for typeName to set.
+ *
+ * @return This builder for chaining.
+ */
+ public Builder setTypeNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ typeName_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
@@ -66805,122 +66968,125 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "cl.api.ListVariables_Result.VariablesEnt"
+ "ry\022\031\n\021unsupported_codes\030\002 \003(\t\032G\n\016Variabl"
+ "esEntry\022\013\n\003key\030\001 \001(\t\022$\n\005value\030\002 \001(\0132\025.co"
- + "m.kcl.api.Variable:\0028\001\"\031\n\010Variable\022\r\n\005va"
- + "lue\030\001 \001(\t\"_\n\026GetFullSchemaType_Args\0220\n\te"
- + "xec_args\030\001 \001(\0132\035.com.kcl.api.ExecProgram"
- + "_Args\022\023\n\013schema_name\030\002 \001(\t\"E\n\022GetSchemaT"
- + "ype_Args\022\014\n\004file\030\001 \001(\t\022\014\n\004code\030\002 \001(\t\022\023\n\013"
- + "schema_name\030\003 \001(\t\"F\n\024GetSchemaType_Resul"
- + "t\022.\n\020schema_type_list\030\001 \003(\0132\024.com.kcl.ap"
- + "i.KclType\"L\n\031GetSchemaTypeMapping_Args\022\014"
- + "\n\004file\030\001 \001(\t\022\014\n\004code\030\002 \001(\t\022\023\n\013schema_nam"
- + "e\030\003 \001(\t\"\313\001\n\033GetSchemaTypeMapping_Result\022"
- + "\\\n\023schema_type_mapping\030\001 \003(\0132?.com.kcl.a"
- + "pi.GetSchemaTypeMapping_Result.SchemaTyp" + "eMappingEntry\032N\n\026SchemaTypeMappingEntry\022"
- + "\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.com.kcl.ap"
- + "i.KclType:\0028\001\"\207\001\n\021ValidateCode_Args\022\020\n\010d"
- + "atafile\030\001 \001(\t\022\014\n\004data\030\002 \001(\t\022\014\n\004file\030\003 \001("
- + "\t\022\014\n\004code\030\004 \001(\t\022\016\n\006schema\030\005 \001(\t\022\026\n\016attri"
- + "bute_name\030\006 \001(\t\022\016\n\006format\030\007 \001(\t\";\n\023Valid"
- + "ateCode_Result\022\017\n\007success\030\001 \001(\010\022\023\n\013err_m"
- + "essage\030\002 \001(\t\":\n\010Position\022\014\n\004line\030\001 \001(\003\022\016"
- + "\n\006column\030\002 \001(\003\022\020\n\010filename\030\003 \001(\t\"i\n\021List"
- + "DepFiles_Args\022\020\n\010work_dir\030\001 \001(\t\022\024\n\014use_a"
- + "bs_path\030\002 \001(\010\022\023\n\013include_all\030\003 \001(\010\022\027\n\017us"
- + "e_fast_parser\030\004 \001(\010\"F\n\023ListDepFiles_Resu"
- + "lt\022\017\n\007pkgroot\030\001 \001(\t\022\017\n\007pkgpath\030\002 \001(\t\022\r\n\005"
- + "files\030\003 \003(\t\"9\n\026LoadSettingsFiles_Args\022\020\n"
- + "\010work_dir\030\001 \001(\t\022\r\n\005files\030\002 \003(\t\"{\n\030LoadSe"
- + "ttingsFiles_Result\022/\n\017kcl_cli_configs\030\001 "
- + "\001(\0132\026.com.kcl.api.CliConfig\022.\n\013kcl_optio"
- + "ns\030\002 \003(\0132\031.com.kcl.api.KeyValuePair\"\203\002\n\t"
- + "CliConfig\022\r\n\005files\030\001 \003(\t\022\016\n\006output\030\002 \001(\t"
- + "\022\021\n\toverrides\030\003 \003(\t\022\025\n\rpath_selector\030\004 \003"
- + "(\t\022\032\n\022strict_range_check\030\005 \001(\010\022\024\n\014disabl"
- + "e_none\030\006 \001(\010\022\017\n\007verbose\030\007 \001(\003\022\r\n\005debug\030\010"
- + " \001(\010\022\021\n\tsort_keys\030\t \001(\010\022\023\n\013show_hidden\030\n"
- + " \001(\010\022 \n\030include_schema_type_path\030\013 \001(\010\022\021"
- + "\n\tfast_eval\030\014 \001(\010\"*\n\014KeyValuePair\022\013\n\003key"
- + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"^\n\013Rename_Args\022\024\n\014"
+ + "m.kcl.api.Variable:\0028\001\",\n\010Variable\022\r\n\005va"
+ + "lue\030\001 \001(\t\022\021\n\ttype_name\030\002 \001(\t\"_\n\026GetFullS"
+ + "chemaType_Args\0220\n\texec_args\030\001 \001(\0132\035.com."
+ + "kcl.api.ExecProgram_Args\022\023\n\013schema_name\030"
+ + "\002 \001(\t\"E\n\022GetSchemaType_Args\022\014\n\004file\030\001 \001("
+ + "\t\022\014\n\004code\030\002 \001(\t\022\023\n\013schema_name\030\003 \001(\t\"F\n\024"
+ + "GetSchemaType_Result\022.\n\020schema_type_list"
+ + "\030\001 \003(\0132\024.com.kcl.api.KclType\"L\n\031GetSchem"
+ + "aTypeMapping_Args\022\014\n\004file\030\001 \001(\t\022\014\n\004code\030"
+ + "\002 \001(\t\022\023\n\013schema_name\030\003 \001(\t\"\313\001\n\033GetSchema"
+ + "TypeMapping_Result\022\\\n\023schema_type_mappin"
+ + "g\030\001 \003(\0132?.com.kcl.api.GetSchemaTypeMappi"
+ + "ng_Result.SchemaTypeMappingEntry\032N\n\026Sche"
+ + "maTypeMappingEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value"
+ + "\030\002 \001(\0132\024.com.kcl.api.KclType:\0028\001\"\207\001\n\021Val"
+ + "idateCode_Args\022\020\n\010datafile\030\001 \001(\t\022\014\n\004data"
+ + "\030\002 \001(\t\022\014\n\004file\030\003 \001(\t\022\014\n\004code\030\004 \001(\t\022\016\n\006sc"
+ + "hema\030\005 \001(\t\022\026\n\016attribute_name\030\006 \001(\t\022\016\n\006fo"
+ + "rmat\030\007 \001(\t\";\n\023ValidateCode_Result\022\017\n\007suc"
+ + "cess\030\001 \001(\010\022\023\n\013err_message\030\002 \001(\t\":\n\010Posit"
+ + "ion\022\014\n\004line\030\001 \001(\003\022\016\n\006column\030\002 \001(\003\022\020\n\010fil"
+ + "ename\030\003 \001(\t\"i\n\021ListDepFiles_Args\022\020\n\010work"
+ + "_dir\030\001 \001(\t\022\024\n\014use_abs_path\030\002 \001(\010\022\023\n\013incl"
+ + "ude_all\030\003 \001(\010\022\027\n\017use_fast_parser\030\004 \001(\010\"F"
+ + "\n\023ListDepFiles_Result\022\017\n\007pkgroot\030\001 \001(\t\022\017"
+ + "\n\007pkgpath\030\002 \001(\t\022\r\n\005files\030\003 \003(\t\"9\n\026LoadSe"
+ + "ttingsFiles_Args\022\020\n\010work_dir\030\001 \001(\t\022\r\n\005fi"
+ + "les\030\002 \003(\t\"{\n\030LoadSettingsFiles_Result\022/\n"
+ + "\017kcl_cli_configs\030\001 \001(\0132\026.com.kcl.api.Cli"
+ + "Config\022.\n\013kcl_options\030\002 \003(\0132\031.com.kcl.ap"
+ + "i.KeyValuePair\"\203\002\n\tCliConfig\022\r\n\005files\030\001 "
+ + "\003(\t\022\016\n\006output\030\002 \001(\t\022\021\n\toverrides\030\003 \003(\t\022\025"
+ + "\n\rpath_selector\030\004 \003(\t\022\032\n\022strict_range_ch"
+ + "eck\030\005 \001(\010\022\024\n\014disable_none\030\006 \001(\010\022\017\n\007verbo"
+ + "se\030\007 \001(\003\022\r\n\005debug\030\010 \001(\010\022\021\n\tsort_keys\030\t \001"
+ + "(\010\022\023\n\013show_hidden\030\n \001(\010\022 \n\030include_schem"
+ + "a_type_path\030\013 \001(\010\022\021\n\tfast_eval\030\014 \001(\010\"*\n\014"
+ + "KeyValuePair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t"
+ + "\"^\n\013Rename_Args\022\024\n\014package_root\030\001 \001(\t\022\023\n"
+ + "\013symbol_path\030\002 \001(\t\022\022\n\nfile_paths\030\003 \003(\t\022\020"
+ + "\n\010new_name\030\004 \001(\t\"&\n\rRename_Result\022\025\n\rcha"
+ + "nged_files\030\001 \003(\t\"\307\001\n\017RenameCode_Args\022\024\n\014"
+ "package_root\030\001 \001(\t\022\023\n\013symbol_path\030\002 \001(\t\022"
- + "\022\n\nfile_paths\030\003 \003(\t\022\020\n\010new_name\030\004 \001(\t\"&\n"
- + "\rRename_Result\022\025\n\rchanged_files\030\001 \003(\t\"\307\001"
- + "\n\017RenameCode_Args\022\024\n\014package_root\030\001 \001(\t\022"
- + "\023\n\013symbol_path\030\002 \001(\t\022C\n\014source_codes\030\003 \003"
- + "(\0132-.com.kcl.api.RenameCode_Args.SourceC"
- + "odesEntry\022\020\n\010new_name\030\004 \001(\t\0322\n\020SourceCod"
- + "esEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\""
- + "\221\001\n\021RenameCode_Result\022G\n\rchanged_codes\030\001"
- + " \003(\01320.com.kcl.api.RenameCode_Result.Cha"
- + "ngedCodesEntry\0323\n\021ChangedCodesEntry\022\013\n\003k"
- + "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"v\n\tTest_Args"
- + "\0220\n\texec_args\030\001 \001(\0132\035.com.kcl.api.ExecPr"
- + "ogram_Args\022\020\n\010pkg_list\030\002 \003(\t\022\022\n\nrun_rege"
- + "xp\030\003 \001(\t\022\021\n\tfail_fast\030\004 \001(\010\"6\n\013Test_Resu"
- + "lt\022\'\n\004info\030\002 \003(\0132\031.com.kcl.api.TestCaseI"
- + "nfo\"R\n\014TestCaseInfo\022\014\n\004name\030\001 \001(\t\022\r\n\005err"
- + "or\030\002 \001(\t\022\020\n\010duration\030\003 \001(\004\022\023\n\013log_messag"
- + "e\030\004 \001(\t\"\310\004\n\007KclType\022\014\n\004type\030\001 \001(\t\022)\n\013uni"
- + "on_types\030\002 \003(\0132\024.com.kcl.api.KclType\022\017\n\007"
- + "default\030\003 \001(\t\022\023\n\013schema_name\030\004 \001(\t\022\022\n\nsc"
- + "hema_doc\030\005 \001(\t\0228\n\nproperties\030\006 \003(\0132$.com"
- + ".kcl.api.KclType.PropertiesEntry\022\020\n\010requ"
- + "ired\030\007 \003(\t\022!\n\003key\030\010 \001(\0132\024.com.kcl.api.Kc"
- + "lType\022\"\n\004item\030\t \001(\0132\024.com.kcl.api.KclTyp"
- + "e\022\014\n\004line\030\n \001(\005\022*\n\ndecorators\030\013 \003(\0132\026.co"
- + "m.kcl.api.Decorator\022\020\n\010filename\030\014 \001(\t\022\020\n"
- + "\010pkg_path\030\r \001(\t\022\023\n\013description\030\016 \001(\t\0224\n\010"
- + "examples\030\017 \003(\0132\".com.kcl.api.KclType.Exa"
- + "mplesEntry\032G\n\017PropertiesEntry\022\013\n\003key\030\001 \001"
- + "(\t\022#\n\005value\030\002 \001(\0132\024.com.kcl.api.KclType:"
- + "\0028\001\032E\n\rExamplesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005val"
- + "ue\030\002 \001(\0132\024.com.kcl.api.Example:\0028\001\"\225\001\n\tD"
- + "ecorator\022\014\n\004name\030\001 \001(\t\022\021\n\targuments\030\002 \003("
- + "\t\0226\n\010keywords\030\003 \003(\0132$.com.kcl.api.Decora"
- + "tor.KeywordsEntry\032/\n\rKeywordsEntry\022\013\n\003ke"
- + "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\">\n\007Example\022\017\n"
- + "\007summary\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022\r\n\005v"
- + "alue\030\003 \001(\t2\226\001\n\016BuiltinService\0228\n\004Ping\022\026."
- + "com.kcl.api.Ping_Args\032\030.com.kcl.api.Ping"
- + "_Result\022J\n\nListMethod\022\034.com.kcl.api.List"
- + "Method_Args\032\036.com.kcl.api.ListMethod_Res"
- + "ult2\340\r\n\014KclvmService\0228\n\004Ping\022\026.com.kcl.a"
- + "pi.Ping_Args\032\030.com.kcl.api.Ping_Result\022M"
- + "\n\013ExecProgram\022\035.com.kcl.api.ExecProgram_"
- + "Args\032\037.com.kcl.api.ExecProgram_Result\022P\n"
- + "\014BuildProgram\022\036.com.kcl.api.BuildProgram" + "_Args\032 .com.kcl.api.BuildProgram_Result\022"
- + "O\n\014ExecArtifact\022\036.com.kcl.api.ExecArtifa"
- + "ct_Args\032\037.com.kcl.api.ExecProgram_Result"
- + "\022G\n\tParseFile\022\033.com.kcl.api.ParseFile_Ar"
- + "gs\032\035.com.kcl.api.ParseFile_Result\022P\n\014Par"
- + "seProgram\022\036.com.kcl.api.ParseProgram_Arg"
- + "s\032 .com.kcl.api.ParseProgram_Result\022M\n\013L"
- + "oadPackage\022\035.com.kcl.api.LoadPackage_Arg"
- + "s\032\037.com.kcl.api.LoadPackage_Result\022N\n\013Li"
- + "stOptions\022\036.com.kcl.api.ParseProgram_Arg"
- + "s\032\037.com.kcl.api.ListOptions_Result\022S\n\rLi"
- + "stVariables\022\037.com.kcl.api.ListVariables_" + "Args\032!.com.kcl.api.ListVariables_Result\022"
- + "J\n\nFormatCode\022\034.com.kcl.api.FormatCode_A"
- + "rgs\032\036.com.kcl.api.FormatCode_Result\022J\n\nF"
- + "ormatPath\022\034.com.kcl.api.FormatPath_Args\032"
- + "\036.com.kcl.api.FormatPath_Result\022D\n\010LintP"
- + "ath\022\032.com.kcl.api.LintPath_Args\032\034.com.kc"
- + "l.api.LintPath_Result\022P\n\014OverrideFile\022\036."
- + "com.kcl.api.OverrideFile_Args\032 .com.kcl." + "api.OverrideFile_Result\022S\n\rGetSchemaType"
- + "\022\037.com.kcl.api.GetSchemaType_Args\032!.com."
- + "kcl.api.GetSchemaType_Result\022[\n\021GetFullS" + "chemaType\022#.com.kcl.api.GetFullSchemaTyp"
- + "e_Args\032!.com.kcl.api.GetSchemaType_Resul" + "t\022h\n\024GetSchemaTypeMapping\022&.com.kcl.api."
- + "GetSchemaTypeMapping_Args\032(.com.kcl.api." + "GetSchemaTypeMapping_Result\022P\n\014ValidateC"
- + "ode\022\036.com.kcl.api.ValidateCode_Args\032 .co"
- + "m.kcl.api.ValidateCode_Result\022P\n\014ListDep"
- + "Files\022\036.com.kcl.api.ListDepFiles_Args\032 ."
- + "com.kcl.api.ListDepFiles_Result\022_\n\021LoadS" + "ettingsFiles\022#.com.kcl.api.LoadSettingsF"
- + "iles_Args\032%.com.kcl.api.LoadSettingsFile"
- + "s_Result\022>\n\006Rename\022\030.com.kcl.api.Rename_"
- + "Args\032\032.com.kcl.api.Rename_Result\022J\n\nRena"
- + "meCode\022\034.com.kcl.api.RenameCode_Args\032\036.c"
- + "om.kcl.api.RenameCode_Result\0228\n\004Test\022\026.c"
- + "om.kcl.api.Test_Args\032\030.com.kcl.api.Test_" + "Resultb\006proto3" };
+ + "C\n\014source_codes\030\003 \003(\0132-.com.kcl.api.Rena"
+ + "meCode_Args.SourceCodesEntry\022\020\n\010new_name"
+ + "\030\004 \001(\t\0322\n\020SourceCodesEntry\022\013\n\003key\030\001 \001(\t\022"
+ + "\r\n\005value\030\002 \001(\t:\0028\001\"\221\001\n\021RenameCode_Result"
+ + "\022G\n\rchanged_codes\030\001 \003(\01320.com.kcl.api.Re"
+ + "nameCode_Result.ChangedCodesEntry\0323\n\021Cha"
+ + "ngedCodesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001"
+ + "(\t:\0028\001\"v\n\tTest_Args\0220\n\texec_args\030\001 \001(\0132\035"
+ + ".com.kcl.api.ExecProgram_Args\022\020\n\010pkg_lis"
+ + "t\030\002 \003(\t\022\022\n\nrun_regexp\030\003 \001(\t\022\021\n\tfail_fast"
+ + "\030\004 \001(\010\"6\n\013Test_Result\022\'\n\004info\030\002 \003(\0132\031.co"
+ + "m.kcl.api.TestCaseInfo\"R\n\014TestCaseInfo\022\014"
+ + "\n\004name\030\001 \001(\t\022\r\n\005error\030\002 \001(\t\022\020\n\010duration\030"
+ + "\003 \001(\004\022\023\n\013log_message\030\004 \001(\t\"\310\004\n\007KclType\022\014"
+ + "\n\004type\030\001 \001(\t\022)\n\013union_types\030\002 \003(\0132\024.com."
+ + "kcl.api.KclType\022\017\n\007default\030\003 \001(\t\022\023\n\013sche"
+ + "ma_name\030\004 \001(\t\022\022\n\nschema_doc\030\005 \001(\t\0228\n\npro"
+ + "perties\030\006 \003(\0132$.com.kcl.api.KclType.Prop"
+ + "ertiesEntry\022\020\n\010required\030\007 \003(\t\022!\n\003key\030\010 \001"
+ + "(\0132\024.com.kcl.api.KclType\022\"\n\004item\030\t \001(\0132\024"
+ + ".com.kcl.api.KclType\022\014\n\004line\030\n \001(\005\022*\n\nde"
+ + "corators\030\013 \003(\0132\026.com.kcl.api.Decorator\022\020"
+ + "\n\010filename\030\014 \001(\t\022\020\n\010pkg_path\030\r \001(\t\022\023\n\013de"
+ + "scription\030\016 \001(\t\0224\n\010examples\030\017 \003(\0132\".com."
+ + "kcl.api.KclType.ExamplesEntry\032G\n\017Propert"
+ + "iesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.c"
+ + "om.kcl.api.KclType:\0028\001\032E\n\rExamplesEntry\022"
+ + "\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.com.kcl.ap"
+ + "i.Example:\0028\001\"\225\001\n\tDecorator\022\014\n\004name\030\001 \001("
+ + "\t\022\021\n\targuments\030\002 \003(\t\0226\n\010keywords\030\003 \003(\0132$"
+ + ".com.kcl.api.Decorator.KeywordsEntry\032/\n\r"
+ + "KeywordsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001("
+ + "\t:\0028\001\">\n\007Example\022\017\n\007summary\030\001 \001(\t\022\023\n\013des"
+ + "cription\030\002 \001(\t\022\r\n\005value\030\003 \001(\t2\226\001\n\016Builti"
+ + "nService\0228\n\004Ping\022\026.com.kcl.api.Ping_Args"
+ + "\032\030.com.kcl.api.Ping_Result\022J\n\nListMethod"
+ + "\022\034.com.kcl.api.ListMethod_Args\032\036.com.kcl"
+ + ".api.ListMethod_Result2\340\r\n\014KclvmService\022"
+ + "8\n\004Ping\022\026.com.kcl.api.Ping_Args\032\030.com.kc"
+ + "l.api.Ping_Result\022M\n\013ExecProgram\022\035.com.k"
+ + "cl.api.ExecProgram_Args\032\037.com.kcl.api.Ex"
+ + "ecProgram_Result\022P\n\014BuildProgram\022\036.com.k"
+ + "cl.api.BuildProgram_Args\032 .com.kcl.api.B"
+ + "uildProgram_Result\022O\n\014ExecArtifact\022\036.com"
+ + ".kcl.api.ExecArtifact_Args\032\037.com.kcl.api"
+ + ".ExecProgram_Result\022G\n\tParseFile\022\033.com.k"
+ + "cl.api.ParseFile_Args\032\035.com.kcl.api.Pars"
+ + "eFile_Result\022P\n\014ParseProgram\022\036.com.kcl.a"
+ + "pi.ParseProgram_Args\032 .com.kcl.api.Parse"
+ + "Program_Result\022M\n\013LoadPackage\022\035.com.kcl."
+ + "api.LoadPackage_Args\032\037.com.kcl.api.LoadP"
+ + "ackage_Result\022N\n\013ListOptions\022\036.com.kcl.a"
+ + "pi.ParseProgram_Args\032\037.com.kcl.api.ListO"
+ + "ptions_Result\022S\n\rListVariables\022\037.com.kcl" + ".api.ListVariables_Args\032!.com.kcl.api.Li"
+ + "stVariables_Result\022J\n\nFormatCode\022\034.com.k"
+ + "cl.api.FormatCode_Args\032\036.com.kcl.api.For"
+ + "matCode_Result\022J\n\nFormatPath\022\034.com.kcl.a"
+ + "pi.FormatPath_Args\032\036.com.kcl.api.FormatP"
+ + "ath_Result\022D\n\010LintPath\022\032.com.kcl.api.Lin"
+ + "tPath_Args\032\034.com.kcl.api.LintPath_Result"
+ + "\022P\n\014OverrideFile\022\036.com.kcl.api.OverrideF"
+ + "ile_Args\032 .com.kcl.api.OverrideFile_Resu" + "lt\022S\n\rGetSchemaType\022\037.com.kcl.api.GetSch"
+ + "emaType_Args\032!.com.kcl.api.GetSchemaType" + "_Result\022[\n\021GetFullSchemaType\022#.com.kcl.a"
+ + "pi.GetFullSchemaType_Args\032!.com.kcl.api." + "GetSchemaType_Result\022h\n\024GetSchemaTypeMap"
+ + "ping\022&.com.kcl.api.GetSchemaTypeMapping_" + "Args\032(.com.kcl.api.GetSchemaTypeMapping_"
+ + "Result\022P\n\014ValidateCode\022\036.com.kcl.api.Val"
+ + "idateCode_Args\032 .com.kcl.api.ValidateCod"
+ + "e_Result\022P\n\014ListDepFiles\022\036.com.kcl.api.L"
+ + "istDepFiles_Args\032 .com.kcl.api.ListDepFi" + "les_Result\022_\n\021LoadSettingsFiles\022#.com.kc"
+ + "l.api.LoadSettingsFiles_Args\032%.com.kcl.a"
+ + "pi.LoadSettingsFiles_Result\022>\n\006Rename\022\030."
+ + "com.kcl.api.Rename_Args\032\032.com.kcl.api.Re"
+ + "name_Result\022J\n\nRenameCode\022\034.com.kcl.api."
+ + "RenameCode_Args\032\036.com.kcl.api.RenameCode"
+ + "_Result\0228\n\004Test\022\026.com.kcl.api.Test_Args\032"
+ + "\030.com.kcl.api.Test_Resultb\006proto3" };
descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {});
internal_static_com_kcl_api_CmdExternalPkgSpec_descriptor = getDescriptor().getMessageTypes().get(0);
@@ -67095,7 +67261,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new java.lang.String[] { "Key", "Value", });
internal_static_com_kcl_api_Variable_descriptor = getDescriptor().getMessageTypes().get(38);
internal_static_com_kcl_api_Variable_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
- internal_static_com_kcl_api_Variable_descriptor, new java.lang.String[] { "Value", });
+ internal_static_com_kcl_api_Variable_descriptor, new java.lang.String[] { "Value", "TypeName", });
internal_static_com_kcl_api_GetFullSchemaType_Args_descriptor = getDescriptor().getMessageTypes().get(39);
internal_static_com_kcl_api_GetFullSchemaType_Args_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_com_kcl_api_GetFullSchemaType_Args_descriptor,
diff --git a/java/src/test/java/com/kcl/ListVariablesTest.java b/java/src/test/java/com/kcl/ListVariablesTest.java
index 50a7c185..7e438c96 100644
--- a/java/src/test/java/com/kcl/ListVariablesTest.java
+++ b/java/src/test/java/com/kcl/ListVariablesTest.java
@@ -13,22 +13,25 @@ public void testListVariables() throws Exception {
API api = new API();
// Define the variables to test and their expected results
- String[][] testCases = { { "a", "1" }, { "a1", "2" }, { "a3", "3m" }, { "b1", "True" }, { "b2", "False" },
- { "s1", "\"Hello\"" }, { "array1", "[1, 2, 3]" }, { "dict1", "{\"a\": 1, \"b\": 2}" },
- { "dict1.a", "1" }, { "dict1.b", "2" }, { "dict2.b.c", "2" }, { "dict2.b.d", "3" },
- { "sha.name", "\"Hello\"" }, { "sha.ids", "[1, 2, 3]" }, { "sha.data.a.b", "{\"c\": 2}" },
- { "sha.data.a.b.c", "2" }, { "shb.a.name", "\"HelloB\"" }, { "shb.a.ids", "[4, 5, 6]" },
- { "shb.a.data.d.e", "{\"f\": 3}" }, { "uconfa.name", "\"b\"" }, { "c.a", "{ids: [7, 8, 9]}" }, };
+ String[][] testCases = { { "a", "1", "" }, { "a1", "2", "" }, { "a3", "3m", "" }, { "b1", "True", "" },
+ { "b2", "False", "" }, { "s1", "\"Hello\"", "" }, { "array1", "[1, 2, 3]", "" },
+ { "dict1", "{\"a\": 1, \"b\": 2}", "" }, { "dict1.a", "1", "" }, { "dict1.b", "2", "" },
+ { "dict2.b.c", "2", "" }, { "dict2.b.d", "3", "" }, { "sha.name", "\"Hello\"", "" },
+ { "sha.ids", "[1, 2, 3]", "" }, { "sha.data.a.b", "{\"c\": 2}", "" }, { "sha.data.a.b.c", "2", "" },
+ { "shb.a.name", "\"HelloB\"", "" }, { "shb.a.ids", "[4, 5, 6]", "" },
+ { "shb.a.data.d.e", "{\"f\": 3}", "" }, { "uconfa.name", "\"b\"", "" },
+ { "c.a", "{ids: [7, 8, 9]}", "" }, { "c1", "C {}", "C" }, { "c2", "a.b.C {}", "a.b.C" } };
for (String[] testCase : testCases) {
String spec = testCase[0];
String expectedValue = testCase[1];
+ String expectedName = testCase[2];
ListVariables_Result result = api.listVariables(ListVariables_Args.newBuilder()
.setFile("./src/test_data/list_variables/main.k").addSpecs(spec).build());
Assert.assertEquals(result.getVariablesCount(), 1);
Assert.assertEquals(result.getVariablesMap().get(spec).getValue(), expectedValue);
-
+ Assert.assertEquals(result.getVariablesMap().get(spec).getTypeName(), expectedName);
}
}
}
diff --git a/java/src/test_data/list_variables/main.k b/java/src/test_data/list_variables/main.k
index 13d78049..18f9fbe5 100644
--- a/java/src/test_data/list_variables/main.k
+++ b/java/src/test_data/list_variables/main.k
@@ -70,3 +70,7 @@ c = C {
a: {name: "Hello"}
a: {ids: [7, 8, 9]}
}
+
+c1 = C {}
+
+c2 = a.b.C {}
\ No newline at end of file
diff --git a/spec/gpyrpc/spec.proto b/spec/gpyrpc/spec.proto
index 73b30914..8e5505c8 100644
--- a/spec/gpyrpc/spec.proto
+++ b/spec/gpyrpc/spec.proto
@@ -303,6 +303,7 @@ message ListVariables_Result {
message Variable {
string value = 1;
+ string type_name = 2;
}
message GetFullSchemaType_Args {