Skip to content

Commit f545f20

Browse files
committed
Hotfix for Blazor WebAssembly.
1 parent efd2639 commit f545f20

File tree

1 file changed

+146
-139
lines changed

1 file changed

+146
-139
lines changed

CSharpToJavaScript/CSTOJS.cs

Lines changed: 146 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -363,155 +363,155 @@ private void Generate(SyntaxTree tree, Assembly? assembly, List<MetadataReferenc
363363
//
364364
//https://stackoverflow.com/a/72938702
365365
CompilationUnitSyntax trueRoot = root.WithUsings
366-
(
367-
SyntaxFactory.List<UsingDirectiveSyntax>
368-
(
369-
new UsingDirectiveSyntax[]
370-
{
371-
SyntaxFactory.UsingDirective
372366
(
373-
SyntaxFactory.AliasQualifiedName
367+
SyntaxFactory.List<UsingDirectiveSyntax>
374368
(
375-
SyntaxFactory.IdentifierName
376-
(
377-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
378-
),
379-
SyntaxFactory.IdentifierName("System")
380-
)
381-
)
382-
.WithGlobalKeyword
383-
(
384-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
385-
),
386-
SyntaxFactory.UsingDirective
387-
(
388-
SyntaxFactory.QualifiedName
389-
(
390-
SyntaxFactory.QualifiedName
391-
(
392-
SyntaxFactory.AliasQualifiedName
369+
new UsingDirectiveSyntax[]
370+
{
371+
SyntaxFactory.UsingDirective
393372
(
394-
SyntaxFactory.IdentifierName
373+
SyntaxFactory.AliasQualifiedName
395374
(
396-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
397-
),
398-
SyntaxFactory.IdentifierName("System")
375+
SyntaxFactory.IdentifierName
376+
(
377+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
378+
),
379+
SyntaxFactory.IdentifierName("System")
380+
)
381+
)
382+
.WithGlobalKeyword
383+
(
384+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
399385
),
400-
SyntaxFactory.IdentifierName("Collections")
401-
),
402-
SyntaxFactory.IdentifierName("Generic")
403-
)
404-
)
405-
.WithGlobalKeyword
406-
(
407-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
408-
),
409-
SyntaxFactory.UsingDirective
410-
(
411-
SyntaxFactory.QualifiedName
412-
(
413-
SyntaxFactory.AliasQualifiedName
414-
(
415-
SyntaxFactory.IdentifierName
386+
SyntaxFactory.UsingDirective
387+
(
388+
SyntaxFactory.QualifiedName
389+
(
390+
SyntaxFactory.QualifiedName
391+
(
392+
SyntaxFactory.AliasQualifiedName
393+
(
394+
SyntaxFactory.IdentifierName
395+
(
396+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
397+
),
398+
SyntaxFactory.IdentifierName("System")
399+
),
400+
SyntaxFactory.IdentifierName("Collections")
401+
),
402+
SyntaxFactory.IdentifierName("Generic")
403+
)
404+
)
405+
.WithGlobalKeyword
416406
(
417407
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
418408
),
419-
SyntaxFactory.IdentifierName("System")
420-
),
421-
SyntaxFactory.IdentifierName("IO")
422-
)
423-
)
424-
.WithGlobalKeyword
425-
(
426-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
427-
),
428-
SyntaxFactory.UsingDirective
429-
(
430-
SyntaxFactory.QualifiedName
431-
(
432-
SyntaxFactory.AliasQualifiedName
433-
(
434-
SyntaxFactory.IdentifierName
409+
SyntaxFactory.UsingDirective
410+
(
411+
SyntaxFactory.QualifiedName
412+
(
413+
SyntaxFactory.AliasQualifiedName
414+
(
415+
SyntaxFactory.IdentifierName
416+
(
417+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
418+
),
419+
SyntaxFactory.IdentifierName("System")
420+
),
421+
SyntaxFactory.IdentifierName("IO")
422+
)
423+
)
424+
.WithGlobalKeyword
435425
(
436426
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
437427
),
438-
SyntaxFactory.IdentifierName("System")
439-
),
440-
SyntaxFactory.IdentifierName("Linq")
441-
)
442-
)
443-
.WithGlobalKeyword
444-
(
445-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
446-
),
447-
SyntaxFactory.UsingDirective
448-
(
449-
SyntaxFactory.QualifiedName
450-
(
451-
SyntaxFactory.QualifiedName
452-
(
453-
SyntaxFactory.AliasQualifiedName
428+
SyntaxFactory.UsingDirective
454429
(
455-
SyntaxFactory.IdentifierName
430+
SyntaxFactory.QualifiedName
456431
(
457-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
458-
),
459-
SyntaxFactory.IdentifierName("System")
432+
SyntaxFactory.AliasQualifiedName
433+
(
434+
SyntaxFactory.IdentifierName
435+
(
436+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
437+
),
438+
SyntaxFactory.IdentifierName("System")
439+
),
440+
SyntaxFactory.IdentifierName("Linq")
441+
)
442+
)
443+
.WithGlobalKeyword
444+
(
445+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
460446
),
461-
SyntaxFactory.IdentifierName("Net")
462-
),
463-
SyntaxFactory.IdentifierName("Http")
464-
)
465-
)
466-
.WithGlobalKeyword
467-
(
468-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
469-
),
470-
SyntaxFactory.UsingDirective
471-
(
472-
SyntaxFactory.QualifiedName
473-
(
474-
SyntaxFactory.AliasQualifiedName
475-
(
476-
SyntaxFactory.IdentifierName
447+
SyntaxFactory.UsingDirective
448+
(
449+
SyntaxFactory.QualifiedName
450+
(
451+
SyntaxFactory.QualifiedName
452+
(
453+
SyntaxFactory.AliasQualifiedName
454+
(
455+
SyntaxFactory.IdentifierName
456+
(
457+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
458+
),
459+
SyntaxFactory.IdentifierName("System")
460+
),
461+
SyntaxFactory.IdentifierName("Net")
462+
),
463+
SyntaxFactory.IdentifierName("Http")
464+
)
465+
)
466+
.WithGlobalKeyword
477467
(
478468
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
479469
),
480-
SyntaxFactory.IdentifierName("System")
481-
),
482-
SyntaxFactory.IdentifierName("Threading")
483-
)
484-
)
485-
.WithGlobalKeyword
486-
(
487-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
488-
),
489-
SyntaxFactory.UsingDirective
490-
(
491-
SyntaxFactory.QualifiedName
492-
(
493-
SyntaxFactory.QualifiedName
494-
(
495-
SyntaxFactory.AliasQualifiedName
470+
SyntaxFactory.UsingDirective
496471
(
497-
SyntaxFactory.IdentifierName
472+
SyntaxFactory.QualifiedName
498473
(
499-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
500-
),
501-
SyntaxFactory.IdentifierName("System")
474+
SyntaxFactory.AliasQualifiedName
475+
(
476+
SyntaxFactory.IdentifierName
477+
(
478+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
479+
),
480+
SyntaxFactory.IdentifierName("System")
481+
),
482+
SyntaxFactory.IdentifierName("Threading")
483+
)
484+
)
485+
.WithGlobalKeyword
486+
(
487+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
502488
),
503-
SyntaxFactory.IdentifierName("Threading")
504-
),
505-
SyntaxFactory.IdentifierName("Tasks")
489+
SyntaxFactory.UsingDirective
490+
(
491+
SyntaxFactory.QualifiedName
492+
(
493+
SyntaxFactory.QualifiedName
494+
(
495+
SyntaxFactory.AliasQualifiedName
496+
(
497+
SyntaxFactory.IdentifierName
498+
(
499+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
500+
),
501+
SyntaxFactory.IdentifierName("System")
502+
),
503+
SyntaxFactory.IdentifierName("Threading")
504+
),
505+
SyntaxFactory.IdentifierName("Tasks")
506+
)
507+
)
508+
.WithGlobalKeyword
509+
(
510+
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
511+
)
512+
}
506513
)
507-
)
508-
.WithGlobalKeyword
509-
(
510-
SyntaxFactory.Token(SyntaxKind.GlobalKeyword)
511-
)
512-
}
513-
)
514-
).AddUsings(oldUsing);
514+
).AddUsings(oldUsing);
515515

516516
if (_Options.NormalizeWhitespace)
517517
trueRoot = trueRoot.NormalizeWhitespace();
@@ -599,23 +599,30 @@ private void Generate(SyntaxTree tree, Assembly? assembly, List<MetadataReferenc
599599
//https://stackoverflow.com/a/12073675
600600
List<MetadataReference> trueReferences = new();
601601

602-
foreach (MetadataReference item in references)
602+
if (refs == null)
603603
{
604-
bool found = false;
605-
foreach (MetadataReference resultItem in trueReferences)
604+
foreach (MetadataReference item in references)
606605
{
607-
if (item.Display == null)
608-
continue;
606+
bool found = false;
607+
foreach (MetadataReference resultItem in trueReferences)
608+
{
609+
if (item.Display == null)
610+
continue;
609611

610-
if (resultItem.Display == item.Display)
611-
found = true;
612-
}
612+
if (resultItem.Display == item.Display)
613+
found = true;
614+
}
613615

614-
if (!found)
615-
{
616-
trueReferences.Add(item);
616+
if (!found)
617+
{
618+
trueReferences.Add(item);
619+
}
617620
}
618621
}
622+
else
623+
{
624+
trueReferences = references;
625+
}
619626

620627
if (_Options.Debug)
621628
{

0 commit comments

Comments
 (0)