Skip to content

Commit

Permalink
cleanup TODO's
Browse files Browse the repository at this point in the history
  • Loading branch information
SunSerega committed Mar 31, 2024
1 parent 802913b commit 0026ff9
Show file tree
Hide file tree
Showing 12 changed files with 85 additions and 37 deletions.
13 changes: 5 additions & 8 deletions DataScraping/XML/NamedItems.pas
Original file line number Diff line number Diff line change
Expand Up @@ -289,10 +289,9 @@

{$region Pre-saving}

//TODO #3059: as, use operator explicit
protected function NameApi: string; virtual := (self.Name as IComplexName).ApiName;
protected function NameSuffix: string; virtual := (self.Name as IComplexName).VendorSuffix;
protected function NameLocal: string; virtual := (self.Name as IComplexName).LocalName;
protected function NameApi: string; virtual := IComplexName(self.Name).ApiName;
protected function NameSuffix: string; virtual := IComplexName(self.Name).VendorSuffix;
protected function NameLocal: string; virtual := IComplexName(self.Name).LocalName;

protected function NameWithoutSuffix: TName; virtual;
begin
Expand Down Expand Up @@ -362,8 +361,7 @@
Sort(save_ready, item->item.Name);

for var i := 0 to save_ready.Length-1 do
//TODO #3060: as
(save_ready[i] as NamedItem<TSelf, TName>).bin_index := i;
save_ready[i].bin_index := i;

end;

Expand Down Expand Up @@ -417,8 +415,7 @@
end;
public static function DistillAllUnique(inp: sequence of TSelf) := DistillAllUnique(inp, o->o, nil).ConvertAll(o->o.AfterMerges);

//TODO #3059: as, use operator explicit
protected procedure SaveName(bw: BinWriter); virtual := (Name as IBinSavable).Save(bw);
protected procedure SaveName(bw: BinWriter); virtual := IBinSavable(Name).Save(bw);
protected procedure SaveBody(bw: BinWriter); abstract;
private saved := false;
public procedure Save(bw: BinWriter);
Expand Down
6 changes: 2 additions & 4 deletions Packing/Template/LowLvl/BinUtils.pas
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
unit BinUtils;

{$savepcu false} //TODO #3057

uses System;
uses '..\..\..\Utils\TypeMagic';

type
BinReader = System.IO.BinaryReader;
Expand Down Expand Up @@ -51,8 +50,7 @@ function ReadEnum<T>(self: BinReader): T; extensionmethod;
if typeof(T).GetEnumUnderlyingType <> typeof(Int32) then
raise new NotSupportedException;
{$endif DEBUG}
//TODO #3056: as object
Result := T(self.ReadInt32() as object);
Result := ConvertTo&<T>.FromUnchecked(self.ReadInt32());
end;

end.
2 changes: 0 additions & 2 deletions Packing/Template/LowLvl/Essentials.pas
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
unit Essentials;

{$savepcu false} //TODO #3058

interface

uses System;
Expand Down
7 changes: 2 additions & 5 deletions Packing/Template/LowLvl/NamedItemHelpers.pas
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,8 @@
Otp($'WARNING: {kvp.Key} referenced itself');
end;

foreach var kvp in all_unused_reports do
kvp.Value();
//TODO #3061: Заменить предыдущий цикл
// foreach var rep in all_unused_reports.Values do
// rep.Invoke();
foreach var rep in all_unused_reports.values do
rep.Invoke();

all_unused_reports := nil;
end;
Expand Down
4 changes: 1 addition & 3 deletions Packing/Template/LowLvl/NamedTypeItems.pas
Original file line number Diff line number Diff line change
Expand Up @@ -2038,9 +2038,7 @@ interface
begin
if org_t1.Name.IsMatrix <> org_t2.Name.IsMatrix then exit;

//TODO #3062
// foreach var (t1,t2) in |org_t1,org_t2|.Permutations do
foreach var (t1,t2) in |(org_t1,org_t2),(org_t2,org_t1)| do
foreach var (t1,t2) in |org_t1,org_t2|.Permutations do
begin
var t1_name := t1.Name.ToString(true);
var t2_name := t2.Name.ToString(true);
Expand Down
6 changes: 2 additions & 4 deletions Packing/Template/LowLvl/ParData.pas
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ interface
private static inst := new ParArrSizeNotArray;
public static property Instance: ParArrSizeNotArray read inst;

//TODO #3063: use Instance
static constructor := DefineLoader(PASK_NotArray, br->inst);
static constructor := DefineLoader(PASK_NotArray, br->Instance);

end;

Expand All @@ -39,8 +38,7 @@ interface
private static inst := new ParArrSizeArbitrary;
public static property Instance: ParArrSizeArbitrary read inst;

//TODO #3063: use Instance
static constructor := DefineLoader(PASK_Arbitrary, br->inst);
static constructor := DefineLoader(PASK_Arbitrary, br->Instance);

end;

Expand Down
2 changes: 1 addition & 1 deletion Utils/Fixers.pas
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ interface
var start := true;
var bl_start := true;

//TODO #2683
//TODO #2715
var make_res: function: (array of string,array of string) := ()->
begin
var lc := res.Count;
Expand Down
3 changes: 0 additions & 3 deletions Utils/Patterns.pas
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
unit Patterns;
{$zerobasedstrings}

//TODO #2739
{$savepcu false}

interface

uses System;
Expand Down
5 changes: 2 additions & 3 deletions Utils/Patterns/MergedStrings.pas
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ implementation
private parts: array of MergedStringPart;
private len_caps: array of MergedStringLength;

private constructor(parts: array of MergedStringPart);
private constructor(params parts: array of MergedStringPart);
begin
self.parts := parts;
SetLength(len_caps, parts.Count);
Expand Down Expand Up @@ -675,8 +675,7 @@ implementation
function MergedStringPointer.IsOut := data.part_i = s.parts.Length;

static function MergedString.Literal(s: string) :=
//TODO #3064: adding params breaks case where array is passed to "new MergedString"
new MergedString(new MergedStringPart[](new MergedStringPartSolid(s)));
new MergedString(new MergedStringPartSolid(s));

static function MergedString.Parse(s: StringSection; escape_sym: char) :=
new MergedString(OptimizeParts(MakeParts(s, escape_sym)).ToArray);
Expand Down
4 changes: 2 additions & 2 deletions Utils/Patterns/test.pas
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@

var p: MergedString;
begin
var ps := EnumerateFiles('G:/0Prog/AutoMaximize/Classes/1 What')
var ps := EnumerateFiles('G:\0Prog\AutoMaximize\Classes\1 What')
.Select(System.IO.Path.GetFileName)
.Where(fname->fname.StartsWith('HwndWrapper'))
// .Where(fname->fname.StartsWith('HwndWrapper'))
.Select(MergedString.Literal)
.ToHashSet;
while ps.Count.Println>1 do
Expand Down
2 changes: 0 additions & 2 deletions Utils/SubExecuters.pas
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
uses PathUtils;
uses Timers;

uses AQueue; //TODO #2543

{$region Helpers}

type
Expand Down
68 changes: 68 additions & 0 deletions Utils/TypeMagic.pas
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
unit TypeMagic;

interface

type

{$region Convert}

ConvertTo<T> = sealed class

private constructor := raise new System.InvalidOperationException;

public static function FromChecked<T2>(o: T2): T;
public static function FromUnchecked<T2>(o: T2): T;
public static function From<T2>(o: T2; checked: boolean := true) :=
if checked then FromChecked(o) else FromUnchecked(o);

end;

{$endregion Convert}

implementation

uses System.Linq.Expressions;

{$region Convert}

type ConvertCache<T1,T2> = sealed class

private constructor := raise new System.InvalidOperationException;

public static checked, unchecked: T2->T1;
private static function MakeFunc(conv: (Expression,System.Type)->Expression): T2->T1;
begin
try
var p := Expression.Parameter(typeof(T2));
var c := conv(p, typeof(T1));
var l := Expression.Lambda&<Func<T2, T1>>(c, p);
Result := l.Compile();
except
on e: Exception do
begin
Result := o->
begin
Result := default(T1);
raise new System.InvalidCastException($'Failed to make [{TypeToTypeName(typeof(T2))}]=>[{TypeToTypeName(typeof(T1))}] conversion', e);
end;
exit;
end;
end;

end;
static constructor;
begin
checked := MakeFunc(Expression.ConvertChecked);
unchecked := MakeFunc(Expression.Convert);
end;

end;

static function ConvertTo<T>.FromChecked<T2>(o: T2) :=
ConvertCache&<T,T2>.checked(o);
static function ConvertTo<T>.FromUnchecked<T2>(o: T2) :=
ConvertCache&<T,T2>.unchecked(o);

{$endregion Convert}

end.

0 comments on commit 0026ff9

Please sign in to comment.