@abaplint/core 2.93.7 → 2.93.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/abaplint.d.ts +8 -3
- package/build/src/abap/2_statements/expressions/for.js +1 -1
- package/build/src/abap/2_statements/statements/form.js +2 -1
- package/build/src/abap/2_statements/statements/form_definition.js +13 -0
- package/build/src/abap/2_statements/statements/index.js +1 -0
- package/build/src/abap/3_structures/structures/normal.js +1 -1
- package/build/src/abap/5_syntax/expressions/value_body.js +13 -1
- package/build/src/registry.js +1 -1
- package/build/src/rules/downport.js +1 -1
- package/build/src/rules/obsolete_statement.js +14 -0
- package/build/src/rules/prefer_corresponding.js +2 -1
- package/build/src/rules/sicf_consistency.js +11 -0
- package/build/src/rules/unused_variables.js +1 -3
- package/package.json +2 -2
package/build/abaplint.d.ts
CHANGED
|
@@ -2191,7 +2191,11 @@ declare class FormChanging extends Expression {
|
|
|
2191
2191
|
getRunnable(): IStatementRunnable;
|
|
2192
2192
|
}
|
|
2193
2193
|
|
|
2194
|
-
declare class FormDefinition
|
|
2194
|
+
declare class FormDefinition implements IStatement {
|
|
2195
|
+
getMatcher(): IStatementRunnable;
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
declare class FormDefinition_2 extends Identifier implements IFormDefinition {
|
|
2195
2199
|
private readonly node;
|
|
2196
2200
|
private readonly tableParameters;
|
|
2197
2201
|
private readonly usingParameters;
|
|
@@ -5433,7 +5437,8 @@ declare namespace Statements {
|
|
|
5433
5437
|
GetPermissions,
|
|
5434
5438
|
SetLocks,
|
|
5435
5439
|
Enhancement_2 as Enhancement,
|
|
5436
|
-
EndEnhancement
|
|
5440
|
+
EndEnhancement,
|
|
5441
|
+
FormDefinition
|
|
5437
5442
|
}
|
|
5438
5443
|
}
|
|
5439
5444
|
export { Statements }
|
|
@@ -6055,7 +6060,7 @@ declare namespace Types {
|
|
|
6055
6060
|
ClassConstant,
|
|
6056
6061
|
ClassDefinition_3 as ClassDefinition,
|
|
6057
6062
|
ClassImplementation_3 as ClassImplementation,
|
|
6058
|
-
FormDefinition,
|
|
6063
|
+
FormDefinition_2 as FormDefinition,
|
|
6059
6064
|
FunctionModuleParameterDirection,
|
|
6060
6065
|
IFunctionModuleParameter,
|
|
6061
6066
|
FunctionModuleDefinition,
|
|
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
|
|
|
7
7
|
const field_chain_1 = require("./field_chain");
|
|
8
8
|
class For extends combi_1.Expression {
|
|
9
9
|
getRunnable() {
|
|
10
|
-
const where = (0, combi_1.seq)("WHERE", _1.ComponentCond);
|
|
10
|
+
const where = (0, combi_1.seq)("WHERE (", _1.ComponentCond, ")");
|
|
11
11
|
const from = (0, combi_1.seq)("FROM", _1.Source);
|
|
12
12
|
const to = (0, combi_1.seq)("TO", _1.Source);
|
|
13
13
|
const inn = (0, combi_1.seq)(_1.InlineLoopDefinition, (0, combi_1.optPrio)(from), (0, combi_1.optPrio)(to), (0, combi_1.optPrio)(where));
|
|
@@ -5,7 +5,8 @@ const combi_1 = require("../combi");
|
|
|
5
5
|
const expressions_1 = require("../expressions");
|
|
6
6
|
class Form {
|
|
7
7
|
getMatcher() {
|
|
8
|
-
const
|
|
8
|
+
const parameters = (0, combi_1.seq)((0, combi_1.opt)(expressions_1.FormTables), (0, combi_1.opt)(expressions_1.FormUsing), (0, combi_1.opt)(expressions_1.FormChanging), (0, combi_1.opt)(expressions_1.FormRaising));
|
|
9
|
+
const ret = (0, combi_1.seq)("FORM", expressions_1.FormName, (0, combi_1.alt)("IMPLEMENTATION", parameters));
|
|
9
10
|
return ret;
|
|
10
11
|
}
|
|
11
12
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormDefinition = void 0;
|
|
4
|
+
const combi_1 = require("../combi");
|
|
5
|
+
const expressions_1 = require("../expressions");
|
|
6
|
+
class FormDefinition {
|
|
7
|
+
getMatcher() {
|
|
8
|
+
const ret = (0, combi_1.seq)("FORM", expressions_1.FormName, "DEFINITION", (0, combi_1.opt)(expressions_1.FormTables), (0, combi_1.opt)(expressions_1.FormUsing), (0, combi_1.opt)(expressions_1.FormChanging), (0, combi_1.opt)(expressions_1.FormRaising));
|
|
9
|
+
return ret;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.FormDefinition = FormDefinition;
|
|
13
|
+
//# sourceMappingURL=form_definition.js.map
|
|
@@ -317,4 +317,5 @@ __exportStar(require("./get_permissions"), exports);
|
|
|
317
317
|
__exportStar(require("./set_locks"), exports);
|
|
318
318
|
__exportStar(require("./enhancement"), exports);
|
|
319
319
|
__exportStar(require("./end_enhancement"), exports);
|
|
320
|
+
__exportStar(require("./form_definition"), exports);
|
|
320
321
|
//# sourceMappingURL=index.js.map
|
|
@@ -9,7 +9,7 @@ class Normal {
|
|
|
9
9
|
getMatcher() {
|
|
10
10
|
// note that the sequence of alternatives here influences performance
|
|
11
11
|
return (0, _combi_1.alt)((0, _combi_1.sta)(Statements.Move), (0, _combi_1.sta)(Statements.Call), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sub)(Structures.If), (0, _combi_1.sta)(Statements.Clear), (0, _combi_1.sta)(Statements.FieldSymbol), (0, _combi_1.sta)(Statements.CreateObject), (0, _combi_1.sta)(Statements.CallFunction), (0, _combi_1.sta)(_statement_1.MacroCall), (0, _combi_1.sub)(Structures.LoopAtScreen), (0, _combi_1.sub)(Structures.Loop), (0, _combi_1.sta)(Statements.Append), (0, _combi_1.sub)(Structures.Try), (0, _combi_1.sta)(Statements.ReadTable), (0, _combi_1.sta)(Statements.Assert), (0, _combi_1.sta)(Statements.Return), (0, _combi_1.sta)(Statements.Select), (0, _combi_1.sta)(Statements.Assign), (0, _combi_1.sta)(Statements.InsertInternal), (0, _combi_1.sta)(Statements.DeleteInternal), (0, _combi_1.sta)(Statements.Concatenate), (0, _combi_1.sub)(Structures.Case), (0, _combi_1.sub)(Structures.CaseType), (0, _combi_1.sub)(Structures.Enhancement), (0, _combi_1.sub)(Structures.EnhancementSection), (0, _combi_1.sta)(Statements.AddCorresponding), (0, _combi_1.sta)(Statements.Add), (0, _combi_1.sta)(Statements.AssignLocalCopy), (0, _combi_1.sta)(Statements.AuthorityCheck), (0, _combi_1.sta)(Statements.Back), (0, _combi_1.sta)(Statements.Break), (0, _combi_1.sta)(Statements.BreakId), (0, _combi_1.sta)(Statements.CallDatabase), (0, _combi_1.sta)(Statements.CallDialog), (0, _combi_1.sta)(Statements.CallKernel), (0, _combi_1.sta)(Statements.CallOLE), (0, _combi_1.sta)(Statements.CallScreen), (0, _combi_1.sta)(Statements.ModifyScreen), (0, _combi_1.sta)(Statements.CallSelectionScreen), (0, _combi_1.sta)(Statements.CallTransaction), (0, _combi_1.sta)(Statements.CallTransformation), (0, _combi_1.sta)(Statements.Check), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.CloseCursor), (0, _combi_1.sta)(Statements.CloseDataset), (0, _combi_1.sta)(Statements.Collect), (0, _combi_1.sta)(Statements.Commit), (0, _combi_1.sta)(Statements.Communication), (0, _combi_1.sta)(Statements.Compute), (0, _combi_1.sta)(Statements.CallBadi), (0, _combi_1.sta)(Statements.Condense), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Contexts), (0, _combi_1.sta)(Statements.Continue), (0, _combi_1.sta)(Statements.ConvertText), (0, _combi_1.sta)(Statements.Convert), (0, _combi_1.sta)(Statements.CreateData), (0, _combi_1.sta)(Statements.CreateOLE), (0, _combi_1.sta)(Statements.DeleteCluster), (0, _combi_1.sta)(Statements.DeleteDatabase), (0, _combi_1.sta)(Statements.DeleteDataset), (0, _combi_1.sta)(Statements.DeleteDynpro), (0, _combi_1.sta)(Statements.DeleteMemory), (0, _combi_1.sta)(Statements.DeleteReport), (0, _combi_1.sta)(Statements.DeleteTextpool), (0, _combi_1.sta)(Statements.Demand), (0, _combi_1.sta)(Statements.Describe), (0, _combi_1.sta)(Statements.Detail), (0, _combi_1.sta)(Statements.Divide), (0, _combi_1.sta)(Statements.EditorCall), (0, _combi_1.sta)(Statements.EnhancementPoint), (0, _combi_1.sta)(Statements.Exit), (0, _combi_1.sta)(Statements.ExportDynpro), (0, _combi_1.sta)(Statements.Export), (0, _combi_1.sta)(Statements.Extract), (0, _combi_1.sta)(Statements.FetchNextCursor), (0, _combi_1.sta)(Statements.FieldGroup), (0, _combi_1.sta)(Statements.Fields), (0, _combi_1.sta)(Statements.Find), (0, _combi_1.sta)(Statements.Format), (0, _combi_1.sta)(Statements.FreeMemory), (0, _combi_1.sta)(Statements.FreeObject), (0, _combi_1.sta)(Statements.Free), (0, _combi_1.sta)(Statements.GenerateDynpro), (0, _combi_1.sta)(Statements.GenerateReport), (0, _combi_1.sta)(Statements.GenerateSubroutine), (0, _combi_1.sta)(Statements.GetBadi), (0, _combi_1.sta)(Statements.GetBit), (0, _combi_1.sta)(Statements.GetCursor), (0, _combi_1.sta)(Statements.GetDataset), (0, _combi_1.sta)(Statements.GetLocale), (0, _combi_1.sta)(Statements.GetParameter), (0, _combi_1.sta)(Statements.GetPFStatus), (0, _combi_1.sta)(Statements.GetProperty), (0, _combi_1.sta)(Statements.GetReference), (0, _combi_1.sta)(Statements.GetRunTime), (0, _combi_1.sta)(Statements.GetTime), (0, _combi_1.sta)(Statements.Hide), (0, _combi_1.sta)(Statements.Nodes), (0, _combi_1.sta)(Statements.ImportDynpro), (0, _combi_1.sta)(Statements.ImportNametab), (0, _combi_1.sta)(Statements.MoveCorresponding), (0, _combi_1.sta)(Statements.Import), (0, _combi_1.sta)(Statements.Infotypes), (0, _combi_1.sta)(Statements.Include), // include does not have to be at top level
|
|
12
|
-
(0, _combi_1.sta)(Statements.InsertDatabase), (0, _combi_1.sta)(Statements.InsertReport), (0, _combi_1.sta)(Statements.InsertTextpool), (0, _combi_1.sta)(Statements.InsertFieldGroup), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.Leave), (0, _combi_1.sta)(Statements.LoadReport), (0, _combi_1.sta)(Statements.Local), (0, _combi_1.sta)(Statements.With), (0, _combi_1.sta)(Statements.LogPoint), (0, _combi_1.sta)(Statements.Message), (0, _combi_1.sta)(Statements.ModifyLine), (0, _combi_1.sta)(Statements.ModifyDatabase), (0, _combi_1.sta)(Statements.ModifyInternal), (0, _combi_1.sta)(Statements.Multiply), (0, _combi_1.sta)(Statements.NewLine), (0, _combi_1.sta)(Statements.NewPage), (0, _combi_1.sta)(Statements.OpenCursor), (0, _combi_1.sta)(Statements.OpenDataset), (0, _combi_1.sta)(Statements.Overlay), (0, _combi_1.sta)(Statements.Pack), (0, _combi_1.sta)(Statements.Perform), (0, _combi_1.sta)(Statements.Position), (0, _combi_1.sta)(Statements.Put), (0, _combi_1.sta)(Statements.PrintControl), (0, _combi_1.sta)(Statements.RaiseEvent), (0, _combi_1.sta)(Statements.Raise), (0, _combi_1.sta)(Statements.Ranges), (0, _combi_1.sta)(Statements.ReadDataset), (0, _combi_1.sta)(Statements.ReadLine), (0, _combi_1.sta)(Statements.ReadReport), (0, _combi_1.sta)(Statements.ReadTextpool), (0, _combi_1.sta)(Statements.Receive), (0, _combi_1.sta)(Statements.RefreshControl), (0, _combi_1.sta)(Statements.Refresh), (0, _combi_1.sta)(Statements.Reject), (0, _combi_1.sta)(Statements.Replace), (0, _combi_1.sta)(Statements.Reserve), (0, _combi_1.sta)(Statements.Resume), (0, _combi_1.sta)(Statements.Retry), (0, _combi_1.sta)(Statements.Rollback), (0, _combi_1.sta)(Statements.Scan), (0, _combi_1.sta)(Statements.ScrollList), (0, _combi_1.sta)(Statements.Search), (0, _combi_1.sta)(Statements.SetBit), (0, _combi_1.sta)(Statements.SetBlank), (0, _combi_1.sta)(Statements.SetCountry), (0, _combi_1.sta)(Statements.SetCursor), (0, _combi_1.sta)(Statements.SetDataset), (0, _combi_1.sta)(Statements.SetExtendedCheck), (0, _combi_1.sta)(Statements.SetHandler), (0, _combi_1.sta)(Statements.SetLanguage), (0, _combi_1.sta)(Statements.SetLeft), (0, _combi_1.sta)(Statements.SetLocale), (0, _combi_1.sta)(Statements.SetMargin), (0, _combi_1.sta)(Statements.SetParameter), (0, _combi_1.sta)(Statements.SetPFStatus), (0, _combi_1.sta)(Statements.SetProperty), (0, _combi_1.sta)(Statements.SetRunTime), (0, _combi_1.sta)(Statements.SetScreen), (0, _combi_1.sta)(Statements.SetTitlebar), (0, _combi_1.sta)(Statements.SetUserCommand), (0, _combi_1.sta)(Statements.SetUpdateTask), (0, _combi_1.sta)(Statements.Shift), (0, _combi_1.sta)(Statements.Skip), (0, _combi_1.sta)(Statements.SortDataset), (0, _combi_1.sta)(Statements.Sort), (0, _combi_1.sta)(Statements.Static), (0, _combi_1.sta)(Statements.Split), (0, _combi_1.sta)(Statements.Stop), (0, _combi_1.sta)(Statements.Submit), (0, _combi_1.sta)(Statements.Summary), (0, _combi_1.sta)(Statements.SubtractCorresponding), (0, _combi_1.sta)(Statements.Subtract), (0, _combi_1.sta)(Statements.SuppressDialog), (0, _combi_1.sta)(Statements.Supply), (0, _combi_1.sta)(Statements.Sum), (0, _combi_1.sta)(Statements.SyntaxCheck), (0, _combi_1.sta)(Statements.SystemCall), (0, _combi_1.sta)(Statements.Tables), (0, _combi_1.sta)(Statements.Transfer), (0, _combi_1.sta)(Statements.Translate), (0, _combi_1.sta)(Statements.Type), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.Uline), (0, _combi_1.sta)(Statements.Unassign), (0, _combi_1.sta)(Statements.Unpack), (0, _combi_1.sta)(Statements.UpdateDatabase), (0, _combi_1.sta)(Statements.Wait), (0, _combi_1.sta)(Statements.Window), (0, _combi_1.sta)(Statements.Write), (0, _combi_1.sta)(Statements.CommitEntities), (0, _combi_1.sta)(Statements.GetPermissions), (0, _combi_1.sta)(Statements.SetLocks), (0, _combi_1.sta)(Statements.ModifyEntities), (0, _combi_1.sta)(Statements.ReadEntities), (0, _combi_1.sta)(Statements.RollbackEntities), (0, _combi_1.sub)(Structures.Define), (0, _combi_1.sub)(Structures.TestInjection), (0, _combi_1.sub)(Structures.TestSeam), (0, _combi_1.sub)(Structures.TypeMesh), (0, _combi_1.sub)(Structures.Provide), (0, _combi_1.sub)(Structures.CatchSystemExceptions), (0, _combi_1.sub)(Structures.At), (0, _combi_1.sub)(Structures.Constants), (0, _combi_1.sub)(Structures.Types), (0, _combi_1.sub)(Structures.Statics), (0, _combi_1.sub)(Structures.Select), (0, _combi_1.sub)(Structures.Data), (0, _combi_1.sub)(Structures.TypeEnum), (0, _combi_1.sub)(Structures.While), (0, _combi_1.sub)(Structures.With), (0, _combi_1.sub)(Structures.Do), (0, _combi_1.sub)(Structures.ExecSQL));
|
|
12
|
+
(0, _combi_1.sta)(Statements.InsertDatabase), (0, _combi_1.sta)(Statements.InsertReport), (0, _combi_1.sta)(Statements.InsertTextpool), (0, _combi_1.sta)(Statements.InsertFieldGroup), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.Leave), (0, _combi_1.sta)(Statements.LoadReport), (0, _combi_1.sta)(Statements.Local), (0, _combi_1.sta)(Statements.With), (0, _combi_1.sta)(Statements.LogPoint), (0, _combi_1.sta)(Statements.Message), (0, _combi_1.sta)(Statements.ModifyLine), (0, _combi_1.sta)(Statements.ModifyDatabase), (0, _combi_1.sta)(Statements.ModifyInternal), (0, _combi_1.sta)(Statements.Multiply), (0, _combi_1.sta)(Statements.NewLine), (0, _combi_1.sta)(Statements.NewPage), (0, _combi_1.sta)(Statements.OpenCursor), (0, _combi_1.sta)(Statements.OpenDataset), (0, _combi_1.sta)(Statements.Overlay), (0, _combi_1.sta)(Statements.Pack), (0, _combi_1.sta)(Statements.Perform), (0, _combi_1.sta)(Statements.FormDefinition), (0, _combi_1.sta)(Statements.Position), (0, _combi_1.sta)(Statements.Put), (0, _combi_1.sta)(Statements.PrintControl), (0, _combi_1.sta)(Statements.RaiseEvent), (0, _combi_1.sta)(Statements.Raise), (0, _combi_1.sta)(Statements.Ranges), (0, _combi_1.sta)(Statements.ReadDataset), (0, _combi_1.sta)(Statements.ReadLine), (0, _combi_1.sta)(Statements.ReadReport), (0, _combi_1.sta)(Statements.ReadTextpool), (0, _combi_1.sta)(Statements.Receive), (0, _combi_1.sta)(Statements.RefreshControl), (0, _combi_1.sta)(Statements.Refresh), (0, _combi_1.sta)(Statements.Reject), (0, _combi_1.sta)(Statements.Replace), (0, _combi_1.sta)(Statements.Reserve), (0, _combi_1.sta)(Statements.Resume), (0, _combi_1.sta)(Statements.Retry), (0, _combi_1.sta)(Statements.Rollback), (0, _combi_1.sta)(Statements.Scan), (0, _combi_1.sta)(Statements.ScrollList), (0, _combi_1.sta)(Statements.Search), (0, _combi_1.sta)(Statements.SetBit), (0, _combi_1.sta)(Statements.SetBlank), (0, _combi_1.sta)(Statements.SetCountry), (0, _combi_1.sta)(Statements.SetCursor), (0, _combi_1.sta)(Statements.SetDataset), (0, _combi_1.sta)(Statements.SetExtendedCheck), (0, _combi_1.sta)(Statements.SetHandler), (0, _combi_1.sta)(Statements.SetLanguage), (0, _combi_1.sta)(Statements.SetLeft), (0, _combi_1.sta)(Statements.SetLocale), (0, _combi_1.sta)(Statements.SetMargin), (0, _combi_1.sta)(Statements.SetParameter), (0, _combi_1.sta)(Statements.SetPFStatus), (0, _combi_1.sta)(Statements.SetProperty), (0, _combi_1.sta)(Statements.SetRunTime), (0, _combi_1.sta)(Statements.SetScreen), (0, _combi_1.sta)(Statements.SetTitlebar), (0, _combi_1.sta)(Statements.SetUserCommand), (0, _combi_1.sta)(Statements.SetUpdateTask), (0, _combi_1.sta)(Statements.Shift), (0, _combi_1.sta)(Statements.Skip), (0, _combi_1.sta)(Statements.SortDataset), (0, _combi_1.sta)(Statements.Sort), (0, _combi_1.sta)(Statements.Static), (0, _combi_1.sta)(Statements.Split), (0, _combi_1.sta)(Statements.Stop), (0, _combi_1.sta)(Statements.Submit), (0, _combi_1.sta)(Statements.Summary), (0, _combi_1.sta)(Statements.SubtractCorresponding), (0, _combi_1.sta)(Statements.Subtract), (0, _combi_1.sta)(Statements.SuppressDialog), (0, _combi_1.sta)(Statements.Supply), (0, _combi_1.sta)(Statements.Sum), (0, _combi_1.sta)(Statements.SyntaxCheck), (0, _combi_1.sta)(Statements.SystemCall), (0, _combi_1.sta)(Statements.Tables), (0, _combi_1.sta)(Statements.Transfer), (0, _combi_1.sta)(Statements.Translate), (0, _combi_1.sta)(Statements.Type), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.Uline), (0, _combi_1.sta)(Statements.Unassign), (0, _combi_1.sta)(Statements.Unpack), (0, _combi_1.sta)(Statements.UpdateDatabase), (0, _combi_1.sta)(Statements.Wait), (0, _combi_1.sta)(Statements.Window), (0, _combi_1.sta)(Statements.Write), (0, _combi_1.sta)(Statements.CommitEntities), (0, _combi_1.sta)(Statements.GetPermissions), (0, _combi_1.sta)(Statements.SetLocks), (0, _combi_1.sta)(Statements.ModifyEntities), (0, _combi_1.sta)(Statements.ReadEntities), (0, _combi_1.sta)(Statements.RollbackEntities), (0, _combi_1.sub)(Structures.Define), (0, _combi_1.sub)(Structures.TestInjection), (0, _combi_1.sub)(Structures.TestSeam), (0, _combi_1.sub)(Structures.TypeMesh), (0, _combi_1.sub)(Structures.Provide), (0, _combi_1.sub)(Structures.CatchSystemExceptions), (0, _combi_1.sub)(Structures.At), (0, _combi_1.sub)(Structures.Constants), (0, _combi_1.sub)(Structures.Types), (0, _combi_1.sub)(Structures.Statics), (0, _combi_1.sub)(Structures.Select), (0, _combi_1.sub)(Structures.Data), (0, _combi_1.sub)(Structures.TypeEnum), (0, _combi_1.sub)(Structures.While), (0, _combi_1.sub)(Structures.With), (0, _combi_1.sub)(Structures.Do), (0, _combi_1.sub)(Structures.ExecSQL));
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
exports.Normal = Normal;
|
|
@@ -7,6 +7,7 @@ const source_1 = require("./source");
|
|
|
7
7
|
const let_1 = require("./let");
|
|
8
8
|
const field_assignment_1 = require("./field_assignment");
|
|
9
9
|
const _scope_type_1 = require("../_scope_type");
|
|
10
|
+
const basic_1 = require("../../types/basic");
|
|
10
11
|
class ValueBody {
|
|
11
12
|
runSyntax(node, scope, filename, targetType) {
|
|
12
13
|
if (node === undefined) {
|
|
@@ -28,13 +29,24 @@ class ValueBody {
|
|
|
28
29
|
type = new source_1.Source().runSyntax(s, scope, filename);
|
|
29
30
|
}
|
|
30
31
|
for (const foo of node.findDirectExpressions(Expressions.ValueBodyLine)) {
|
|
32
|
+
if (!(targetType instanceof basic_1.TableType)
|
|
33
|
+
&& !(targetType instanceof basic_1.UnknownType)
|
|
34
|
+
&& !(targetType instanceof basic_1.AnyType)
|
|
35
|
+
&& targetType !== undefined
|
|
36
|
+
&& !(targetType instanceof basic_1.VoidType)) {
|
|
37
|
+
throw new Error("Value, not a table type");
|
|
38
|
+
}
|
|
39
|
+
let rowType = targetType;
|
|
40
|
+
if (targetType instanceof basic_1.TableType) {
|
|
41
|
+
rowType = targetType.getRowType();
|
|
42
|
+
}
|
|
31
43
|
for (const l of foo.findDirectExpressions(Expressions.ValueBodyLines)) {
|
|
32
44
|
for (const s of l.findDirectExpressions(Expressions.Source)) {
|
|
33
45
|
new source_1.Source().runSyntax(s, scope, filename);
|
|
34
46
|
}
|
|
35
47
|
}
|
|
36
48
|
for (const s of foo.findDirectExpressions(Expressions.FieldAssignment)) {
|
|
37
|
-
new field_assignment_1.FieldAssignment().runSyntax(s, scope, filename,
|
|
49
|
+
new field_assignment_1.FieldAssignment().runSyntax(s, scope, filename, rowType);
|
|
38
50
|
}
|
|
39
51
|
for (const s of foo.findDirectExpressions(Expressions.Source)) {
|
|
40
52
|
new source_1.Source().runSyntax(s, scope, filename);
|
package/build/src/registry.js
CHANGED
|
@@ -1291,7 +1291,7 @@ ${indentation} output = ${topTarget}.`;
|
|
|
1291
1291
|
if (sourceName === undefined) {
|
|
1292
1292
|
return undefined;
|
|
1293
1293
|
}
|
|
1294
|
-
const concat = node.concatTokens();
|
|
1294
|
+
const concat = node.concatTokens().toUpperCase();
|
|
1295
1295
|
if (concat.includes(" REFERENCE INTO ")) {
|
|
1296
1296
|
return undefined;
|
|
1297
1297
|
}
|
|
@@ -67,6 +67,10 @@ class ObsoleteStatementConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
|
67
67
|
this.occurences = true;
|
|
68
68
|
/** Check for CLIENT SPECIFIED */
|
|
69
69
|
this.clientSpecified = true;
|
|
70
|
+
/** Check for FORM DEFINITION */
|
|
71
|
+
this.formDefinition = true;
|
|
72
|
+
/** Check for FORM IMPLEMENTATION */
|
|
73
|
+
this.formImplementation = true;
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
exports.ObsoleteStatementConf = ObsoleteStatementConf;
|
|
@@ -287,6 +291,16 @@ CLIENT SPECIFIED, from 754: https://help.sap.com/doc/abapdocu_latest_index_htm/l
|
|
|
287
291
|
issues.push(issue);
|
|
288
292
|
}
|
|
289
293
|
}
|
|
294
|
+
if (this.conf.formDefinition && sta instanceof Statements.FormDefinition) {
|
|
295
|
+
const issue = issue_1.Issue.atStatement(file, staNode, "FORM DEFINITION", this.getMetadata().key, this.conf.severity);
|
|
296
|
+
issues.push(issue);
|
|
297
|
+
}
|
|
298
|
+
if (this.conf.formImplementation && sta instanceof Statements.Form) {
|
|
299
|
+
if (staNode.findDirectTokenByText("IMPLEMENTATION")) {
|
|
300
|
+
const issue = issue_1.Issue.atStatement(file, staNode, "FORM IMPLEMENTATION", this.getMetadata().key, this.conf.severity);
|
|
301
|
+
issues.push(issue);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
290
304
|
if (configVersion >= version_1.Version.v754 && this.conf.clientSpecified
|
|
291
305
|
&& (sta instanceof Statements.Select
|
|
292
306
|
|| sta instanceof Statements.SelectLoop
|
|
@@ -20,7 +20,8 @@ class PreferCorresponding extends _abap_rule_1.ABAPRule {
|
|
|
20
20
|
key: "prefer_corresponding",
|
|
21
21
|
title: "Prefer corresponding( ) to MOVE-CORRESPONDING",
|
|
22
22
|
shortDescription: `Prefer corresponding( ) to MOVE-CORRESPONDING, from v740sp05 and up`,
|
|
23
|
-
|
|
23
|
+
extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#prefer-functional-to-procedural-language-constructs`,
|
|
24
|
+
tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Upport, _irule_1.RuleTag.Styleguide],
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
27
|
getConfig() {
|
|
@@ -6,6 +6,11 @@ const _basic_rule_config_1 = require("./_basic_rule_config");
|
|
|
6
6
|
const objects_1 = require("../objects");
|
|
7
7
|
const position_1 = require("../position");
|
|
8
8
|
class SICFConsistencyConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
/** skip specific names, case insensitive */
|
|
12
|
+
this.skipNames = [];
|
|
13
|
+
}
|
|
9
14
|
}
|
|
10
15
|
exports.SICFConsistencyConf = SICFConsistencyConf;
|
|
11
16
|
class SICFConsistency {
|
|
@@ -27,6 +32,9 @@ class SICFConsistency {
|
|
|
27
32
|
}
|
|
28
33
|
setConfig(conf) {
|
|
29
34
|
this.conf = conf;
|
|
35
|
+
if (this.conf.skipNames === undefined) {
|
|
36
|
+
this.conf.skipNames = [];
|
|
37
|
+
}
|
|
30
38
|
}
|
|
31
39
|
initialize(reg) {
|
|
32
40
|
this.reg = reg;
|
|
@@ -44,6 +52,9 @@ class SICFConsistency {
|
|
|
44
52
|
for (const h of handlers) {
|
|
45
53
|
const clas = this.reg.getObject("CLAS", h);
|
|
46
54
|
if (clas === undefined) {
|
|
55
|
+
if (this.conf.skipNames && this.conf.skipNames.some((a) => a.toUpperCase() === h.toUpperCase())) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
47
58
|
const pattern = new RegExp(this.reg.getConfig().getSyntaxSetttings().errorNamespace, "i");
|
|
48
59
|
if (pattern.test(h) === true) {
|
|
49
60
|
const message = "Handler class " + h + " not found";
|
|
@@ -64,9 +64,7 @@ class UnusedVariables {
|
|
|
64
64
|
key: "unused_variables",
|
|
65
65
|
title: "Unused variables",
|
|
66
66
|
shortDescription: `Checks for unused variables and constants`,
|
|
67
|
-
extendedInformation: `
|
|
68
|
-
|
|
69
|
-
Skips event parameters.
|
|
67
|
+
extendedInformation: `Skips event parameters.
|
|
70
68
|
|
|
71
69
|
Note that this currently does not work if the source code uses macros.
|
|
72
70
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.93.
|
|
3
|
+
"version": "2.93.10",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@microsoft/api-extractor": "^7.29.5",
|
|
50
50
|
"@types/chai": "^4.3.3",
|
|
51
51
|
"@types/mocha": "^9.1.1",
|
|
52
|
-
"@types/node": "^18.7.
|
|
52
|
+
"@types/node": "^18.7.15",
|
|
53
53
|
"chai": "^4.3.6",
|
|
54
54
|
"eslint": "^8.23.0",
|
|
55
55
|
"mocha": "^10.0.0",
|