From 3f840da258f98730762907355e8fbcb8986e7857 Mon Sep 17 00:00:00 2001 From: Peefy Date: Tue, 14 Nov 2023 18:57:49 +0800 Subject: [PATCH] feat: disable empty list feature (#876) feat: add disable empty list Signed-off-by: peefy --- .github/workflows/macos_test.yaml | 4 ---- .github/workflows/ubuntu_test.yaml | 5 +---- kclvm/cmd/src/test_data/instances/test_inst_10/expected | 1 + kclvm/parser/src/entry.rs | 1 - kclvm/parser/src/lib.rs | 2 +- kclvm/runtime/src/api/kclvm.rs | 4 ++-- kclvm/runtime/src/value/val_plan.rs | 2 +- test/grammar/expr/select_expr/in_for_0/stdout.golden | 1 + 8 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.github/workflows/macos_test.yaml b/.github/workflows/macos_test.yaml index ad240c713..75663c32e 100644 --- a/.github/workflows/macos_test.yaml +++ b/.github/workflows/macos_test.yaml @@ -58,10 +58,6 @@ jobs: working-directory: ./kclvm run: export PATH=$PATH:$PWD/../_build/dist/Darwin/kclvm/bin:/usr/local/opt/llvm@12/bin && make install-rustc-wasm && make && make codecov-lcov shell: bash - - name: Konfig test - working-directory: ./kclvm - run: export PATH=$PATH:$PWD/../_build/dist/Darwin/kclvm/bin:/usr/local/opt/llvm@12/bin && make install-rustc-wasm && make && make test-konfig - shell: bash - uses: actions/upload-artifact@v3 with: diff --git a/.github/workflows/ubuntu_test.yaml b/.github/workflows/ubuntu_test.yaml index 9421c885c..16dd34017 100644 --- a/.github/workflows/ubuntu_test.yaml +++ b/.github/workflows/ubuntu_test.yaml @@ -54,10 +54,7 @@ jobs: working-directory: ./kclvm run: export PATH=$PATH:$PWD/../_build/dist/ubuntu/kclvm/bin && make install-rustc-wasm && make && make codecov-lcov shell: bash - - name: Konfig test - working-directory: ./kclvm - run: export PATH=$PATH:$PWD/../_build/dist/ubuntu/kclvm/bin && make install-rustc-wasm && make && make test-konfig - shell: bash + - name: Coveralls upload uses: coverallsapp/github-action@master with: diff --git a/kclvm/cmd/src/test_data/instances/test_inst_10/expected b/kclvm/cmd/src/test_data/instances/test_inst_10/expected index 7987170eb..2e394772b 100644 --- a/kclvm/cmd/src/test_data/instances/test_inst_10/expected +++ b/kclvm/cmd/src/test_data/instances/test_inst_10/expected @@ -1,2 +1,3 @@ a: id: 102 +inst102: [] diff --git a/kclvm/parser/src/entry.rs b/kclvm/parser/src/entry.rs index fdcf348da..a8da17585 100644 --- a/kclvm/parser/src/entry.rs +++ b/kclvm/parser/src/entry.rs @@ -7,7 +7,6 @@ use kclvm_utils::path::{is_absolute, is_dir, path_exist}; use std::collections::VecDeque; use std::fs; use std::path::Path; -use std::sync::Arc; use crate::LoadProgramOptions; diff --git a/kclvm/parser/src/lib.rs b/kclvm/parser/src/lib.rs index 60128444a..99aee1612 100644 --- a/kclvm/parser/src/lib.rs +++ b/kclvm/parser/src/lib.rs @@ -19,7 +19,7 @@ use indexmap::IndexMap; use kclvm_ast::ast; use kclvm_config::modfile::{get_vendor_home, KCL_FILE_EXTENSION, KCL_FILE_SUFFIX, KCL_MOD_FILE}; use kclvm_error::diagnostic::Range; -use kclvm_error::{ErrorKind, Level, Message, Style}; +use kclvm_error::{ErrorKind, Message, Style}; use kclvm_sema::plugin::PLUGIN_MODULE_PREFIX; use kclvm_utils::path::PathPrefix; use kclvm_utils::pkgpath::parse_external_pkg_name; diff --git a/kclvm/runtime/src/api/kclvm.rs b/kclvm/runtime/src/api/kclvm.rs index 1037e6d6a..a99b132f6 100644 --- a/kclvm/runtime/src/api/kclvm.rs +++ b/kclvm/runtime/src/api/kclvm.rs @@ -327,8 +327,8 @@ pub struct ContextConfig { pub list_option_mode: bool, /// Whether to emit none value in the plan process. pub disable_none: bool, - /// Whether to output empty list in the plan process. - pub plan_empty_list: bool, + /// Whether to emit empty list in the plan process. + pub disable_empty_list: bool, } #[derive(PartialEq, Eq, Clone, Debug)] diff --git a/kclvm/runtime/src/value/val_plan.rs b/kclvm/runtime/src/value/val_plan.rs index 5fa4eda64..de79a30ac 100644 --- a/kclvm/runtime/src/value/val_plan.rs +++ b/kclvm/runtime/src/value/val_plan.rs @@ -119,7 +119,7 @@ fn filter_results(ctx: &Context, key_values: &ValueRef, opts: &PlanOptions) -> V let schema_in_list_count = ignore_schema_count + standalone_list.len(); let value = &value.as_list_ref().values; // Plan empty list to values. - if value.is_empty() && ctx.cfg.plan_empty_list { + if value.is_empty() && !ctx.cfg.disable_empty_list { let result = results.get_mut(0).unwrap(); result.dict_update_key_value(key.as_str(), ValueRef::list(None)); } diff --git a/test/grammar/expr/select_expr/in_for_0/stdout.golden b/test/grammar/expr/select_expr/in_for_0/stdout.golden index a13ffd4bb..7f05c6719 100644 --- a/test/grammar/expr/select_expr/in_for_0/stdout.golden +++ b/test/grammar/expr/select_expr/in_for_0/stdout.golden @@ -1,2 +1,3 @@ c: - name: main + volumeMounts: []