|
12 | 12 | using System;
|
13 | 13 | using CSharpToJavaScript.Utils;
|
14 | 14 |
|
| 15 | + |
15 | 16 | namespace CSharpToJavaScript
|
16 | 17 | {
|
17 | 18 | /// <summary>
|
@@ -500,28 +501,50 @@ private void Generate(SyntaxTree? tree, Assembly? assembly, List<MetadataReferen
|
500 | 501 | references.Add(MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "CSharpToJavaScript.dll")));
|
501 | 502 | }
|
502 | 503 |
|
503 |
| - //TODO! does not work... sigh |
504 |
| - //references = references.Distinct().ToList(); |
| 504 | + |
| 505 | + //https://stackoverflow.com/a/12073675 |
| 506 | + List<MetadataReference> trueReferences = new(); |
| 507 | + |
| 508 | + foreach (MetadataReference item in references) |
| 509 | + { |
| 510 | + bool found = false; |
| 511 | + foreach (MetadataReference resultItem in trueReferences) |
| 512 | + { |
| 513 | + if (resultItem.Display == item.Display) |
| 514 | + found = true; |
| 515 | + } |
| 516 | + |
| 517 | + if (!found) |
| 518 | + { |
| 519 | + trueReferences.Add(item); |
| 520 | + } |
| 521 | + } |
505 | 522 |
|
506 | 523 | if (_Options.Debug)
|
507 | 524 | {
|
508 | 525 | _Log.SuccessLine($"+++");
|
509 | 526 | _Log.WriteLine($"Path assembly: {assemblyPath}");
|
510 | 527 | _Log.WriteLine($"Path rt: {rtPath}");
|
511 |
| - _Log.WriteLine($"List of references:"); |
| 528 | + _Log.WriteLine($"List of references({references.Count}):"); |
512 | 529 | foreach (MetadataReference reference in references)
|
513 | 530 | {
|
514 |
| - _Log.WriteLine(reference.Display); |
| 531 | + _Log.WriteLine(reference.Display ?? "null display string"); |
| 532 | + } |
| 533 | + _Log.WriteLine($"List of trueReferences({trueReferences.Count}):"); |
| 534 | + foreach (MetadataReference reference in trueReferences) |
| 535 | + { |
| 536 | + _Log.WriteLine(reference.Display ?? "null display string"); |
515 | 537 | }
|
516 | 538 | _Log.SuccessLine($"+++");
|
517 | 539 | }
|
518 | 540 |
|
519 | 541 | SyntaxTree trueST = trueRoot.SyntaxTree;
|
520 | 542 | CSharpCompilation compilation = CSharpCompilation
|
521 | 543 | .Create("HelloWorld")
|
522 |
| - .AddReferences(references.ToArray()) |
| 544 | + .AddReferences(trueReferences.ToArray()) |
523 | 545 | .AddSyntaxTrees(trueST);
|
524 | 546 |
|
| 547 | + |
525 | 548 | _Walker = new(_Options, compilation.GetSemanticModel(trueST));
|
526 | 549 |
|
527 | 550 | _Walker.JSSB.Append(_Options.AddSBInFront);
|
|
0 commit comments