terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
Path.cs
Go to the documentation of this file.
1using System;
7
8namespace System.IO
9{
10 // Token: 0x0200056D RID: 1389
11 [ComVisible(true)]
12 public static class Path
13 {
14 // Token: 0x060029C7 RID: 10695 RVA: 0x0005AAC8 File Offset: 0x00058CC8
15 public static string ChangeExtension(string path, string extension)
16 {
17 int num = 1;
18 if (num == 0)
19 {
20 }
21 if (num == 0)
22 {
23 }
24 if (path != null && path._stringLength != 0)
25 {
26 long num2 = 0L;
27 char c = path[(int)num2];
28 string text = "." + path;
29 int num3;
30 if (num3 != 0)
31 {
32 long num4 = 0L;
33 return text.Substring((int)num4, num3);
34 }
35 }
36 string text2;
37 return text2;
38 }
39
40 // Token: 0x060029C8 RID: 10696 RVA: 0x0005AB2C File Offset: 0x00058D2C
41 public static string Combine(string path1, string path2)
42 {
43 int num;
44 do
45 {
46 num = 1;
47 }
48 while (path1 == null);
49 if (num != 0)
50 {
51 int stringLength = path1._stringLength;
52 if (stringLength != 0)
53 {
54 if (stringLength == 0)
55 {
56 }
57 if (stringLength == 0)
58 {
59 }
60 if (stringLength == 0)
61 {
62 }
63 bool flag = Path.IsPathRooted(path1);
64 string text;
65 return text;
66 }
67 }
68 return path1;
69 }
70
71 // Token: 0x060029C9 RID: 10697 RVA: 0x0005AB6C File Offset: 0x00058D6C
72 internal static string CleanPath(string s)
73 {
74 if (!true)
75 {
76 }
77 long num = 0L;
78 if (num != 0L)
79 {
80 }
81 string text;
82 return text;
83 }
84
85 // Token: 0x060029CA RID: 10698 RVA: 0x0005AB98 File Offset: 0x00058D98
86 public static string GetDirectoryName(string path)
87 {
88 string text;
89 int stringLength = text._stringLength;
90 if (stringLength != 0)
91 {
92 if (stringLength == 0)
93 {
94 }
95 if (stringLength == 0)
96 {
97 }
98 int num;
99 if (num != 0)
100 {
101 }
102 int num2 = 1;
103 string text2;
104 int stringLength2 = text2._stringLength;
105 char c = text2[num2];
106 string text3;
107 return text2 + text3;
108 }
109 return "Argument string consists of whitespace characters only.";
110 }
111
112 // Token: 0x060029CB RID: 10699 RVA: 0x0005ABFC File Offset: 0x00058DFC
114 {
115 string text;
116 if (text != null)
117 {
118 char rawStringData = text.GetRawStringData();
119 int stringLength = text._stringLength;
120 while (text != null)
121 {
122 }
123 return;
124 }
125 }
126
127 // Token: 0x060029CC RID: 10700 RVA: 0x0005AC20 File Offset: 0x00058E20
128 public static string GetExtension(string path)
129 {
130 int num = 1;
131 if (num == 0)
132 {
133 }
134 if (num == 0)
135 {
136 }
137 string text;
138 return text;
139 }
140
141 // Token: 0x060029CD RID: 10701 RVA: 0x0005AC3C File Offset: 0x00058E3C
142 public static string GetFileName(string path)
143 {
144 int num = 1;
145 string text;
146 if (num != 0)
147 {
148 if (num == 0)
149 {
150 }
151 if (num == 0)
152 {
153 }
154 return text;
155 }
156 return text;
157 }
158
159 // Token: 0x060029CE RID: 10702 RVA: 0x0005AC58 File Offset: 0x00058E58
160 public static string GetFileNameWithoutExtension(string path)
161 {
162 if (!true)
163 {
164 }
165 string text;
166 return text;
167 }
168
169 // Token: 0x060029CF RID: 10703 RVA: 0x0005AC6C File Offset: 0x00058E6C
170 public static string GetFullPath(string path)
171 {
172 if (!true)
173 {
174 }
176 string text;
177 return text;
178 }
179
180 // Token: 0x060029D0 RID: 10704 RVA: 0x0005AC84 File Offset: 0x00058E84
181 internal static string GetFullPathInternal(string path)
182 {
183 if (!true)
184 {
185 }
186 string text;
187 return text;
188 }
189
190 // Token: 0x060029D1 RID: 10705 RVA: 0x0005AC98 File Offset: 0x00058E98
191 internal static string InsecureGetFullPath(string path)
192 {
193 /*
194An exception occurred when decompiling this method (060029D1)
195
196ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String System.IO.Path::InsecureGetFullPath(System.String)
197
198 ---> System.Exception: Basic block has to end with unconditional control flow.
199{
200 IL_0151:
201 stloc:string(var_56_15B, call:string(Locale::GetText, ldstr:string("The specified path is not of a legal form (empty).")))
202}
203
204 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
205 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
206 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
207 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
208 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
209 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
210 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
211 --- End of inner exception stack trace ---
212 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
213 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
214*/;
215 }
216
217 // Token: 0x060029D2 RID: 10706 RVA: 0x0005AE04 File Offset: 0x00059004
218 internal static bool IsDirectorySeparator(char c)
219 {
220 if (!true)
221 {
222 }
223 return true;
224 }
225
226 // Token: 0x060029D3 RID: 10707 RVA: 0x0005AE18 File Offset: 0x00059018
227 public static string GetPathRoot(string path)
228 {
229 int stringLength;
230 do
231 {
232 string text;
233 stringLength = text._stringLength;
234 }
235 while (stringLength == 0);
236 if (stringLength == 0)
237 {
238 }
239 if (stringLength == 0)
240 {
241 }
242 char c;
243 bool flag = Path.IsDirectorySeparator(c);
244 char c2;
246 char c3;
248 char c4;
250 char c5;
253 }
254
255 // Token: 0x060029D4 RID: 10708 RVA: 0x0005AEB8 File Offset: 0x000590B8
256 public static string GetTempPath()
257 {
258 int num = 1;
260 if (num == 0)
261 {
262 }
263 string text;
264 return text;
265 }
266
267 // Token: 0x060029D5 RID: 10709 RVA: 0x0000207A File Offset: 0x0000027A
268 private static string get_temp_path()
269 {
270 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
271 }
272
273 // Token: 0x060029D6 RID: 10710 RVA: 0x0005AED4 File Offset: 0x000590D4
274 public static bool IsPathRooted(ReadOnlySpan<char> path)
275 {
276 /*
277An exception occurred when decompiling this method (060029D6)
278
279ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean System.IO.Path::IsPathRooted(System.ReadOnlySpan`1<System.Char>)
280
281 ---> System.Exception: Basic block has to end with unconditional control flow.
282{
283 IL_000C:
284 brtrue(IL_0000, ldc.i4:bool(0))
285}
286
287 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
288 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
289 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
290 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
291 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
292 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
293 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
294 --- End of inner exception stack trace ---
295 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
296 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
297*/;
298 }
299
300 // Token: 0x060029D7 RID: 10711 RVA: 0x0005AEF0 File Offset: 0x000590F0
301 public static bool IsPathRooted(string path)
302 {
303 if (true)
304 {
305 if (!true)
306 {
307 }
308 bool flag;
309 return flag;
310 }
311 }
312
313 // Token: 0x060029D8 RID: 10712 RVA: 0x0005AF08 File Offset: 0x00059108
314 public static char[] GetInvalidFileNameChars()
315 {
316 /*
317An exception occurred when decompiling this method (060029D8)
318
319ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Char[] System.IO.Path::GetInvalidFileNameChars()
320
321 ---> System.Exception: Basic block has to end with unconditional control flow.
322{
323 Block_0:
324 stloc:bool(var_1_07, callgetter:bool(Environment::get_IsRunningOnWindows))
325}
326
327 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
328 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
329 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
330 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
331 --- End of inner exception stack trace ---
332 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
333 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
334*/;
335 }
336
337 // Token: 0x060029D9 RID: 10713 RVA: 0x0005AF1C File Offset: 0x0005911C
338 public static char[] GetInvalidPathChars()
339 {
340 /*
341An exception occurred when decompiling this method (060029D9)
342
343ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Char[] System.IO.Path::GetInvalidPathChars()
344
345 ---> System.Exception: Basic block has to end with unconditional control flow.
346{
347 Block_0:
348 stloc:bool(var_1_07, callgetter:bool(Environment::get_IsRunningOnWindows))
349}
350
351 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
352 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
353 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
354 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
355 --- End of inner exception stack trace ---
356 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
357 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
358*/;
359 }
360
361 // Token: 0x060029DA RID: 10714 RVA: 0x0005AF30 File Offset: 0x00059130
362 private static int findExtension(string path)
363 {
364 int num;
365 return num;
366 }
367
368 // Token: 0x060029DB RID: 10715 RVA: 0x0005AF40 File Offset: 0x00059140
369 static Path()
370 {
371 string text = Path.GetInvalidPathChars().ToString();
372 }
373
374 // Token: 0x060029DC RID: 10716 RVA: 0x0005AF60 File Offset: 0x00059160
375 private static string CanonicalizePath(string path)
376 {
378 string text;
379 int stringLength = text._stringLength;
380 string pathRoot;
381 if (stringLength != 0)
382 {
383 if (stringLength == 0)
384 {
385 }
388 int stringLength2 = pathRoot._stringLength;
389 long num = 0L;
390 bool flag = Path.IsDirectorySeparator(pathRoot[(int)num]);
391 int num2 = 1;
393 long num3 = 0L;
395 string text2;
396 if (text2 == null || text2 != null)
397 {
398 bool flag3 = text2 == ".";
399 if (num3 == 0L)
400 {
401 return text2;
402 }
403 if (text2 == null || text2 != null)
404 {
405 return text2;
406 }
407 }
408 throw new ArrayTypeMismatchException();
409 }
410 return pathRoot;
411 }
412
413 // Token: 0x060029DD RID: 10717 RVA: 0x0005B064 File Offset: 0x00059264
414 public static string Combine(params string[] paths)
415 {
416 }
417
418 // Token: 0x060029DE RID: 10718 RVA: 0x0005B078 File Offset: 0x00059278
419 public static string Combine(string path1, string path2, string path3)
420 {
421 while (path1 != null)
422 {
423 if (path2 != null)
424 {
425 if (path1 != null && path2 != null)
426 {
427 string text;
428 return text;
429 }
430 throw new ArrayTypeMismatchException();
431 }
432 }
433 return "path2";
434 }
435
436 // Token: 0x060029DF RID: 10719 RVA: 0x0005B0A4 File Offset: 0x000592A4
437 internal static void Validate(string path)
438 {
439 if (!true)
440 {
441 }
442 Path.Validate(path, "path");
443 }
444
445 // Token: 0x060029E0 RID: 10720 RVA: 0x0005B0C0 File Offset: 0x000592C0
446 internal static void Validate(string path, string parameterName)
447 {
448 if (path != null)
449 {
450 bool flag = string.IsNullOrWhiteSpace(path);
451 if (!true)
452 {
453 }
454 return;
455 }
456 }
457
458 // Token: 0x060029E1 RID: 10721 RVA: 0x0005B0E8 File Offset: 0x000592E8
460 {
461 /*
462An exception occurred when decompiling this method (060029E1)
463
464ICSharpCode.Decompiler.DecompilerException: Error decompiling System.ReadOnlySpan`1<System.Char> System.IO.Path::GetFileName(System.ReadOnlySpan`1<System.Char>)
465
466 ---> System.Exception: Basic block has to end with unconditional control flow.
467{
468 IL_0011:
469 call:void(ThrowHelper::ThrowArgumentOutOfRangeException)
470}
471
472 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
473 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
474 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
475 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
476 --- End of inner exception stack trace ---
477 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
478 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
479*/;
480 }
481
482 // Token: 0x060029E2 RID: 10722 RVA: 0x0005B110 File Offset: 0x00059310
484 {
485 if (path1 != null)
486 {
487 string text;
488 return text;
489 }
490 string text2;
491 return text2;
492 }
493
494 // Token: 0x060029E3 RID: 10723 RVA: 0x0005B128 File Offset: 0x00059328
496 {
497 if (path1 != null && path3 != null)
498 {
499 string text;
500 return text;
501 }
502 string text2;
503 return text2;
504 }
505
506 // Token: 0x060029E4 RID: 10724 RVA: 0x0005B140 File Offset: 0x00059340
508 {
509 int num = 1;
510 if (path1 != null)
511 {
512 if (destination != null)
513 {
514 if (num == 0)
515 {
516 }
517 bool flag;
518 return flag;
519 }
520 }
521 else if (destination != null)
522 {
523 }
524 int length = path1._length;
525 if (path1._length == 0)
526 {
527 }
529 }
530
531 // Token: 0x060029E5 RID: 10725 RVA: 0x0005B194 File Offset: 0x00059394
533 {
534 /*
535An exception occurred when decompiling this method (060029E5)
536
537ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String System.IO.Path::JoinInternal(System.ReadOnlySpan`1<System.Char>,System.ReadOnlySpan`1<System.Char>)
538
539 ---> System.Exception: Basic block has to end with unconditional control flow.
540{
541 IL_000B:
542 brtrue(IL_0000, ldloc:int64[exp:bool](var_0_01))
543}
544
545 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
546 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
547 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
548 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
549 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
550 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
551 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
552 --- End of inner exception stack trace ---
553 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
554 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
555*/;
556 }
557
558 // Token: 0x060029E6 RID: 10726 RVA: 0x0005B1B0 File Offset: 0x000593B0
560 {
561 /*
562An exception occurred when decompiling this method (060029E6)
563
564ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String System.IO.Path::JoinInternal(System.ReadOnlySpan`1<System.Char>,System.ReadOnlySpan`1<System.Char>,System.ReadOnlySpan`1<System.Char>)
565
566 ---> System.Exception: Basic block has to end with unconditional control flow.
567{
568 IL_000B:
569 stloc:bool(var_5_12, call:bool(PathInternal::IsDirectorySeparator, ldloc:int32[exp:char](var_4_06)))
570 brtrue(IL_0000, logicnot:bool(ldloc:valuetype System.ReadOnlySpan`1<char>[exp:bool](third)))
571}
572
573 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
574 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
575 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
576 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
577 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
578 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
579 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
580 --- End of inner exception stack trace ---
581 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
582 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
583*/;
584 }
585
586 // Token: 0x0400167A RID: 5754
587 [Obsolete("see GetInvalidPathChars and GetInvalidFileNameChars methods.")]
588 public static readonly char[] InvalidPathChars;
589
590 // Token: 0x0400167B RID: 5755
592
593 // Token: 0x0400167C RID: 5756
595
596 // Token: 0x0400167D RID: 5757
597 public static readonly char PathSeparator;
598
599 // Token: 0x0400167E RID: 5758
600 internal static readonly string DirectorySeparatorStr;
601
602 // Token: 0x0400167F RID: 5759
603 public static readonly char VolumeSeparatorChar;
604
605 // Token: 0x04001680 RID: 5760
606 internal static readonly char[] PathSeparatorChars;
607
608 // Token: 0x04001681 RID: 5761
609 private static readonly bool dirEqualsVolume;
610
611 // Token: 0x04001682 RID: 5762
612 internal static readonly char[] trimEndCharsWindows;
613
614 // Token: 0x04001683 RID: 5763
615 internal static readonly char[] trimEndCharsUnix;
616
617 // Token: 0x0200056E RID: 1390
619 [Serializable]
620 private sealed class <>c
621 {
622 // Token: 0x060029E7 RID: 10727 RVA: 0x0005B1D4 File Offset: 0x000593D4
623 // Note: this type is marked as 'beforefieldinit'.
624 static <>c()
625 {
626 }
627
628 // Token: 0x060029E8 RID: 10728 RVA: 0x0005B1E4 File Offset: 0x000593E4
629 public <>c()
630 {
631 }
632
633 // Token: 0x060029E9 RID: 10729 RVA: 0x0005B1F8 File Offset: 0x000593F8
634 internal unsafe void <JoinInternal>b__56_0(Span<char> destination, [TupleElementNames(new string[] { "First", "FirstLength", "Second", "SecondLength", "HasSeparator" })] ValueTuple<IntPtr, int, IntPtr, int, bool> state)
635 {
636 long num = 0L;
638 int num2 = 47;
640 void* ptr = (void*)num;
643 }
644
645 // Token: 0x060029EA RID: 10730 RVA: 0x0005B230 File Offset: 0x00059430
646 internal unsafe void <JoinInternal>b__57_0(Span<char> destination, [TupleElementNames(new string[] { "First", "FirstLength", "Second", "SecondLength", "Third", "ThirdLength", "FirstHasSeparator", "ThirdHasSeparator", null })] ValueTuple<IntPtr, int, IntPtr, int, IntPtr, int, bool, ValueTuple<bool>> state)
647 {
648 long num = 0L;
650 int num2 = 47;
652 void* ptr = (void*)num;
654 long num3 = 0L;
656 void* ptr2 = (void*)num3;
658 }
659
660 // Token: 0x04001684 RID: 5764
661 public static readonly Path.<>c <>9;
662
663 // Token: 0x04001685 RID: 5765
664 [TupleElementNames(new string[] { "First", "FirstLength", "Second", "SecondLength", "HasSeparator" })]
666
667 // Token: 0x04001686 RID: 5766
668 [TupleElementNames(new string[] { "First", "FirstLength", "Second", "SecondLength", "Third", "ThirdLength", "FirstHasSeparator", "ThirdHasSeparator", null })]
669 public static SpanAction<char, ValueTuple<IntPtr, int, IntPtr, int, IntPtr, int, bool, ValueTuple<bool>>> <>9__57_0;
670 }
671 }
672}
class f__AnonymousType0<< Count > j__TPar
static bool IsRunningOnWindows
static string GetCurrentDirectory()
Definition Directory.cs:169
static bool StartsWithDirectorySeparator(ReadOnlySpan< char > path)
static string get_temp_path()
Definition Path.cs:268
static string GetFileNameWithoutExtension(string path)
Definition Path.cs:160
static ReadOnlySpan< char > GetDirectoryName(ReadOnlySpan< char > path)
Definition Path.cs:113
static string Combine(string path1, string path2)
Definition Path.cs:41
static readonly bool dirEqualsVolume
Definition Path.cs:609
static Path()
Definition Path.cs:369
static char[] GetInvalidFileNameChars()
Definition Path.cs:314
static char[] GetInvalidPathChars()
Definition Path.cs:338
static readonly char PathSeparator
Definition Path.cs:597
static string GetFullPath(string path)
Definition Path.cs:170
static void Validate(string path)
Definition Path.cs:437
static string Combine(string path1, string path2, string path3)
Definition Path.cs:419
static void Validate(string path, string parameterName)
Definition Path.cs:446
static string CanonicalizePath(string path)
Definition Path.cs:375
static readonly char[] trimEndCharsUnix
Definition Path.cs:615
static bool IsPathRooted(string path)
Definition Path.cs:301
static string Join(ReadOnlySpan< char > path1, ReadOnlySpan< char > path2, ReadOnlySpan< char > path3)
Definition Path.cs:495
static bool IsDirectorySeparator(char c)
Definition Path.cs:218
static bool IsPathRooted(ReadOnlySpan< char > path)
Definition Path.cs:274
static string GetFileName(string path)
Definition Path.cs:142
static readonly char[] InvalidPathChars
Definition Path.cs:588
static string Combine(params string[] paths)
Definition Path.cs:414
static string GetTempPath()
Definition Path.cs:256
static string InsecureGetFullPath(string path)
Definition Path.cs:191
static string Join(ReadOnlySpan< char > path1, ReadOnlySpan< char > path2)
Definition Path.cs:483
static string ChangeExtension(string path, string extension)
Definition Path.cs:15
static string JoinInternal(ReadOnlySpan< char > first, ReadOnlySpan< char > second, ReadOnlySpan< char > third)
Definition Path.cs:559
static readonly char AltDirectorySeparatorChar
Definition Path.cs:591
static string GetPathRoot(string path)
Definition Path.cs:227
static readonly char DirectorySeparatorChar
Definition Path.cs:594
static readonly char VolumeSeparatorChar
Definition Path.cs:603
static readonly char[] PathSeparatorChars
Definition Path.cs:606
static ReadOnlySpan< char > GetFileName(ReadOnlySpan< char > path)
Definition Path.cs:459
static int findExtension(string path)
Definition Path.cs:362
static string GetExtension(string path)
Definition Path.cs:128
static string GetDirectoryName(string path)
Definition Path.cs:86
static string GetFullPathInternal(string path)
Definition Path.cs:181
static bool TryJoin(ReadOnlySpan< char > path1, ReadOnlySpan< char > path2, Span< char > destination, [Out] int charsWritten)
Definition Path.cs:507
static readonly string DirectorySeparatorStr
Definition Path.cs:600
static readonly char[] trimEndCharsWindows
Definition Path.cs:612
static string CleanPath(string s)
Definition Path.cs:72
static string JoinInternal(ReadOnlySpan< char > first, ReadOnlySpan< char > second)
Definition Path.cs:532
static void ThrowArgumentOutOfRangeException()