Skip to content

Commit

Permalink
Address feedback from Andy
Browse files Browse the repository at this point in the history
  • Loading branch information
jcouv committed Dec 4, 2018
1 parent d3de70b commit 950fb6e
Showing 1 changed file with 10 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,12 @@ internal static bool TryCreate(SyntheticBoundNodeFactory F, MethodSymbol method,
resultType: F.SpecialType(SpecialType.System_Void),
createBuilderMethod: createBuilderMethod,
taskProperty: null,
setException: 0, // unused
setException: null, // unused
setResult: WellKnownMember.System_Runtime_CompilerServices_AsyncIteratorMethodBuilder__Complete,
awaitOnCompleted: WellKnownMember.System_Runtime_CompilerServices_AsyncIteratorMethodBuilder__AwaitOnCompleted,
awaitUnsafeOnCompleted: WellKnownMember.System_Runtime_CompilerServices_AsyncIteratorMethodBuilder__AwaitUnsafeOnCompleted,
start: WellKnownMember.System_Runtime_CompilerServices_AsyncIteratorMethodBuilder__MoveNext_T,
setStateMachine: 0, // unused
setStateMachine: null, // unused
collection: out collection);
}

Expand Down Expand Up @@ -334,12 +334,12 @@ private static NamedTypeSymbol ValidateBuilderType(SyntheticBoundNodeFactory F,
TypeSymbol resultType,
MethodSymbol createBuilderMethod,
PropertySymbol taskProperty,
WellKnownMember setException,
WellKnownMember? setException,
WellKnownMember setResult,
WellKnownMember awaitOnCompleted,
WellKnownMember awaitUnsafeOnCompleted,
WellKnownMember start,
WellKnownMember setStateMachine,
WellKnownMember? setStateMachine,
out AsyncMethodBuilderMemberCollection collection)
{
MethodSymbol setExceptionMethod;
Expand Down Expand Up @@ -378,21 +378,22 @@ private static NamedTypeSymbol ValidateBuilderType(SyntheticBoundNodeFactory F,

private static bool TryGetBuilderMember<TSymbol>(
SyntheticBoundNodeFactory F,
WellKnownMember member,
WellKnownMember? member,
NamedTypeSymbol builderType,
bool customBuilder,
out TSymbol symbol)
where TSymbol : Symbol
{
if (member == 0)
if (!member.HasValue)
{
symbol = null;
return true;
}

WellKnownMember memberValue = member.Value;
if (customBuilder)
{
var descriptor = WellKnownMembers.GetDescriptor(member);
var descriptor = WellKnownMembers.GetDescriptor(memberValue);
var sym = CSharpCompilation.GetRuntimeMember(
builderType.OriginalDefinition,
ref descriptor,
Expand All @@ -406,15 +407,15 @@ private static NamedTypeSymbol ValidateBuilderType(SyntheticBoundNodeFactory F,
}
else
{
symbol = F.WellKnownMember(member, isOptional: true) as TSymbol;
symbol = F.WellKnownMember(memberValue, isOptional: true) as TSymbol;
if ((object)symbol != null)
{
symbol = (TSymbol)symbol.SymbolAsMember(builderType);
}
}
if ((object)symbol == null)
{
var descriptor = WellKnownMembers.GetDescriptor(member);
var descriptor = WellKnownMembers.GetDescriptor(memberValue);
var diagnostic = new CSDiagnostic(
new CSDiagnosticInfo(ErrorCode.ERR_MissingPredefinedMember, (customBuilder ? (object)builderType : descriptor.DeclaringTypeMetadataName), descriptor.Name),
F.Syntax.Location);
Expand Down

0 comments on commit 950fb6e

Please sign in to comment.