Skip to content

Commit

Permalink
Ensure incremental types are equatable
Browse files Browse the repository at this point in the history
  • Loading branch information
sharwell committed Jan 4, 2022
1 parent 749d35c commit bec9fe1
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 89 deletions.
1 change: 1 addition & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="IsExternalInit" Version="1.0.2" PrivateAssets="all" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2" PrivateAssets="all" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="all" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.5.54-alpha" PrivateAssets="all" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,9 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
var hasValueTuple = IsCompilerTypeAvailable(compilation, "System.ValueTuple`2");

return new ReferencedTypesData(
hasIndex: hasIndex,
hasRange: hasRange,
hasValueTuple: hasValueTuple);
HasIndex: hasIndex,
HasRange: hasRange,
HasValueTuple: hasValueTuple);
});

context.RegisterSourceOutput(
Expand Down Expand Up @@ -346,20 +346,9 @@ private static TypeDefinitionLocation IsCompilerTypeAvailable(Compilation compil
};
}

private sealed class ReferencedTypesData
{
public ReferencedTypesData(TypeDefinitionLocation hasIndex, TypeDefinitionLocation hasRange, TypeDefinitionLocation hasValueTuple)
{
HasIndex = hasIndex;
HasRange = hasRange;
HasValueTuple = hasValueTuple;
}

public TypeDefinitionLocation HasIndex { get; }

public TypeDefinitionLocation HasRange { get; }

public TypeDefinitionLocation HasValueTuple { get; }
}
private sealed record ReferencedTypesData(
TypeDefinitionLocation HasIndex,
TypeDefinitionLocation HasRange,
TypeDefinitionLocation HasValueTuple);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
var hasIsExternalInit = IsCompilerTypeAvailable(compilation, "System.Runtime.CompilerServices.IsExternalInit");

return new ReferencedTypesData(
hasIsExternalInit: hasIsExternalInit);
HasIsExternalInit: hasIsExternalInit);
});

context.RegisterSourceOutput(
Expand Down Expand Up @@ -79,14 +79,7 @@ private static TypeDefinitionLocation IsCompilerTypeAvailable(Compilation compil
};
}

private sealed class ReferencedTypesData
{
public ReferencedTypesData(TypeDefinitionLocation hasIsExternalInit)
{
HasIsExternalInit = hasIsExternalInit;
}

public TypeDefinitionLocation HasIsExternalInit { get; }
}
private sealed record ReferencedTypesData(
TypeDefinitionLocation HasIsExternalInit);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -259,17 +259,17 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
var hasMemberNotNullWhenAttribute = IsCodeAnalysisAttributeAvailable(compilation, "System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute");

return new ReferencedTypesData(
hasAllowNullAttribute: hasAllowNullAttribute,
hasDisallowNullAttribute: hasDisallowNullAttribute,
hasMaybeNullAttribute: hasMaybeNullAttribute,
hasNotNullAttribute: hasNotNullAttribute,
hasMaybeNullWhenAttribute: hasMaybeNullWhenAttribute,
hasNotNullWhenAttribute: hasNotNullWhenAttribute,
hasNotNullIfNotNullAttribute: hasNotNullIfNotNullAttribute,
hasDoesNotReturnAttribute: hasDoesNotReturnAttribute,
hasDoesNotReturnIfAttribute: hasDoesNotReturnIfAttribute,
hasMemberNotNullAttribute: hasMemberNotNullAttribute,
hasMemberNotNullWhenAttribute: hasMemberNotNullWhenAttribute);
HasAllowNullAttribute: hasAllowNullAttribute,
HasDisallowNullAttribute: hasDisallowNullAttribute,
HasMaybeNullAttribute: hasMaybeNullAttribute,
HasNotNullAttribute: hasNotNullAttribute,
HasMaybeNullWhenAttribute: hasMaybeNullWhenAttribute,
HasNotNullWhenAttribute: hasNotNullWhenAttribute,
HasNotNullIfNotNullAttribute: hasNotNullIfNotNullAttribute,
HasDoesNotReturnAttribute: hasDoesNotReturnAttribute,
HasDoesNotReturnIfAttribute: hasDoesNotReturnIfAttribute,
HasMemberNotNullAttribute: hasMemberNotNullAttribute,
HasMemberNotNullWhenAttribute: hasMemberNotNullWhenAttribute);
});

context.RegisterSourceOutput(
Expand Down Expand Up @@ -404,55 +404,17 @@ private static TypeDefinitionLocation IsCodeAnalysisAttributeAvailable(Compilati
};
}

private sealed class ReferencedTypesData
{
public ReferencedTypesData(
TypeDefinitionLocation hasAllowNullAttribute,
TypeDefinitionLocation hasDisallowNullAttribute,
TypeDefinitionLocation hasMaybeNullAttribute,
TypeDefinitionLocation hasNotNullAttribute,
TypeDefinitionLocation hasMaybeNullWhenAttribute,
TypeDefinitionLocation hasNotNullWhenAttribute,
TypeDefinitionLocation hasNotNullIfNotNullAttribute,
TypeDefinitionLocation hasDoesNotReturnAttribute,
TypeDefinitionLocation hasDoesNotReturnIfAttribute,
TypeDefinitionLocation hasMemberNotNullAttribute,
TypeDefinitionLocation hasMemberNotNullWhenAttribute)
{
HasAllowNullAttribute = hasAllowNullAttribute;
HasDisallowNullAttribute = hasDisallowNullAttribute;
HasMaybeNullAttribute = hasMaybeNullAttribute;
HasNotNullAttribute = hasNotNullAttribute;
HasMaybeNullWhenAttribute = hasMaybeNullWhenAttribute;
HasNotNullWhenAttribute = hasNotNullWhenAttribute;
HasNotNullIfNotNullAttribute = hasNotNullIfNotNullAttribute;
HasDoesNotReturnAttribute = hasDoesNotReturnAttribute;
HasDoesNotReturnIfAttribute = hasDoesNotReturnIfAttribute;
HasMemberNotNullAttribute = hasMemberNotNullAttribute;
HasMemberNotNullWhenAttribute = hasMemberNotNullWhenAttribute;
}

public TypeDefinitionLocation HasAllowNullAttribute { get; }

public TypeDefinitionLocation HasDisallowNullAttribute { get; }

public TypeDefinitionLocation HasMaybeNullAttribute { get; }

public TypeDefinitionLocation HasNotNullAttribute { get; }

public TypeDefinitionLocation HasMaybeNullWhenAttribute { get; }

public TypeDefinitionLocation HasNotNullWhenAttribute { get; }

public TypeDefinitionLocation HasNotNullIfNotNullAttribute { get; }

public TypeDefinitionLocation HasDoesNotReturnAttribute { get; }

public TypeDefinitionLocation HasDoesNotReturnIfAttribute { get; }

public TypeDefinitionLocation HasMemberNotNullAttribute { get; }

public TypeDefinitionLocation HasMemberNotNullWhenAttribute { get; }
}
private sealed record ReferencedTypesData(
TypeDefinitionLocation HasAllowNullAttribute,
TypeDefinitionLocation HasDisallowNullAttribute,
TypeDefinitionLocation HasMaybeNullAttribute,
TypeDefinitionLocation HasNotNullAttribute,
TypeDefinitionLocation HasMaybeNullWhenAttribute,
TypeDefinitionLocation HasNotNullWhenAttribute,
TypeDefinitionLocation HasNotNullIfNotNullAttribute,
TypeDefinitionLocation HasDoesNotReturnAttribute,
TypeDefinitionLocation HasDoesNotReturnIfAttribute,
TypeDefinitionLocation HasMemberNotNullAttribute,
TypeDefinitionLocation HasMemberNotNullWhenAttribute);
}
}

0 comments on commit bec9fe1

Please sign in to comment.