Skip to content

Commit 4bb03e8

Browse files
committed
Fix obfuscation attributes strip and do other refactoring
1 parent fb56b60 commit 4bb03e8

20 files changed

+155
-120
lines changed

src/BitMono.API/Resolvers/IAttributeResolver.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
namespace BitMono.API.Resolvers;
22

3-
public interface IAttributeResolver<TModel>
4-
where TModel : class
3+
[UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)]
4+
public interface IAttributeResolver<TModel> where TModel : class
55
{
6-
bool Resolve(string? featureName, IHasCustomAttribute from, out TModel? model);
6+
bool Resolve(string? featureName, IHasCustomAttribute from, [NotNullWhen(true)] out TModel? model);
77
bool Resolve(string? featureName, IHasCustomAttribute from);
88
bool Resolve(IHasCustomAttribute from);
99
bool Resolve(Type featureType, IHasCustomAttribute from);

src/BitMono.API/Resolvers/IMemberResolver.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace BitMono.API.Resolvers;
22

3+
[UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)]
34
public interface IMemberResolver
45
{
56
bool Resolve(IProtection protection, IMetadataMember member);

src/BitMono.CLI/Program.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ internal class Program
66
private static CancellationToken CancellationToken => CancellationTokenSource.Token;
77
private static readonly string BitMonoFileVersionText =
88
$"BitMono v{FileVersionInfo.GetVersionInfo(typeof(Program).Assembly.Location).FileVersion}";
9-
private static readonly string AsciiArt = @$"
10-
___ _ __ __ ___
11-
/ _ )(_) /_/ |/ /__ ___ ___
12-
/ _ / / __/ /|_/ / _ \/ _ \/ _ \
13-
/____/_/\__/_/ /_/\___/_//_/\___/
14-
https://github.com/sunnamed434/BitMono
15-
{BitMonoFileVersionText}";
9+
private static readonly string AsciiArt = $"""
10+
11+
___ _ __ __ ___
12+
/ _ )(_) /_/ |/ /__ ___ ___
13+
/ _ / / __/ /|_/ / _ \/ _ \/ _ \
14+
/____/_/\__/_/ /_/\___/_//_/\___/
15+
https://github.com/sunnamed434/BitMono
16+
{BitMonoFileVersionText}
17+
""";
1618

1719
private static async Task<int> Main(string[] args)
1820
{
@@ -53,7 +55,7 @@ private static async Task<int> Main(string[] args)
5355

5456
var info = new IncompleteFileInfo(needs.FileName, needs.ReferencesDirectoryName, needs.OutputPath);
5557
var engine = new BitMonoStarter(serviceProvider);
56-
var succeed = await engine.StartAsync(info, CancellationTokenSource.Token);
58+
var succeed = await engine.StartAsync(info, CancellationToken);
5759
if (succeed == false)
5860
{
5961
logger.Fatal("Engine has fatal issues, unable to continue!");

src/BitMono.Core/Analyzing/CriticalMethodsCriticalAnalyzer.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
namespace BitMono.Core.Analyzing;
22

3-
[UsedImplicitly]
43
public class CriticalMethodsCriticalAnalyzer : ICriticalAnalyzer<MethodDefinition>
54
{
65
private readonly CriticalsSettings _criticalsSettings;

src/BitMono.Core/Contexts/StarterContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
namespace BitMono.Core.Contexts;
22

3-
[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global")]
43
public class StarterContext
54
{
65
#pragma warning disable CS8618

src/BitMono.Core/Extensions/KeyValuePairsExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public static bool GetValueOrDefault(this Dictionary<string, object> source, str
1111
}
1212
return value;
1313
}
14-
public static bool TryGetTypedValue<TKey, TValue, TActual>(this IDictionary<TKey, TValue> source, TKey key, out TActual? value)
14+
public static bool TryGetTypedValue<TKey, TValue, TActual>(this IDictionary<TKey, TValue> source, TKey key, [NotNullWhen(true)] out TActual? value)
1515
where TActual : TValue
1616
{
1717
if (source.TryGetValue(key, out var tempValue))

src/BitMono.Core/Resolvers/AttemptAttributeResolver.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
public static class AttemptAttributeResolver
44
{
5-
public static bool TryResolve(IHasCustomAttribute from, string @namespace, string name, out List<CustomAttributeResolve>? attributesResolve)
5+
public static bool TryResolve(IHasCustomAttribute from, string @namespace, string name,
6+
[NotNullWhen(true)] out List<CustomAttributeResolve>? attributesResolve)
67
{
78
attributesResolve = CustomAttributeResolver.Resolve(from, @namespace, name);
89
return attributesResolve.IsNullOrEmpty() == false;

src/BitMono.Core/Resolvers/AttributeResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public class AttributeResolver<TModel> : IAttributeResolver<TModel> where TModel : class
44
{
5-
public virtual bool Resolve(string? featureName, IHasCustomAttribute from, out TModel? model)
5+
public virtual bool Resolve(string? featureName, IHasCustomAttribute from, [NotNullWhen(true)] out TModel? model)
66
{
77
model = default;
88
return false;
Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
namespace BitMono.Core.Resolvers;
22

3-
[UsedImplicitly]
4-
[SuppressMessage("ReSharper", "InvertIf")]
5-
[SuppressMessage("ReSharper", "ForCanBeConvertedToForeach")]
63
public class CriticalAttributeResolver : AttributeResolver<CustomAttributeResolve>
74
{
85
private readonly CriticalsSettings _criticalsSettings;
@@ -13,7 +10,7 @@ public CriticalAttributeResolver(IOptions<CriticalsSettings> criticals)
1310
}
1411

1512
public override bool Resolve(string? feature, IHasCustomAttribute from,
16-
out CustomAttributeResolve? attributeResolve)
13+
[NotNullWhen(true)] out CustomAttributeResolve? attributeResolve)
1714
{
1815
attributeResolve = null;
1916
if (_criticalsSettings.UseCriticalAttributes == false)
@@ -22,17 +19,17 @@ public override bool Resolve(string? feature, IHasCustomAttribute from,
2219
}
2320

2421
var criticalAttributes = _criticalsSettings.CriticalAttributes;
25-
for (var i = 0; i < criticalAttributes.Count; i++)
22+
foreach (var criticalAttribute in criticalAttributes)
2623
{
27-
var criticalAttribute = criticalAttributes[i];
2824
if (AttemptAttributeResolver.TryResolve(from, criticalAttribute.Namespace, criticalAttribute.Name,
29-
out var attributesResolve))
25+
out var attributesResolve) == false)
3026
{
31-
attributeResolve = attributesResolve!.First();
32-
return true;
27+
continue;
3328
}
34-
}
3529

30+
attributeResolve = attributesResolve.First();
31+
return true;
32+
}
3633
return false;
3734
}
3835
}

src/BitMono.Core/Resolvers/DoNotResolveMemberResolver.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
namespace BitMono.Core.Resolvers;
22

3-
[UsedImplicitly]
4-
[SuppressMessage("ReSharper", "InvertIf")]
53
public class DoNotResolveMemberResolver : IMemberResolver
64
{
75
private readonly RuntimeCriticalAnalyzer _runtimeCriticalAnalyzer;

0 commit comments

Comments
 (0)