AST: Stop setting contextual types on ParamDecls

VarDecl::getType() lazily maps the interface type into context if needed.
This commit is contained in:
Slava Pestov
2018-07-23 02:21:41 -07:00
parent f11b6200b1
commit 4b258e86e6
28 changed files with 99 additions and 174 deletions

View File

@@ -75,7 +75,7 @@ static void deriveRawValueInit(AbstractFunctionDecl *initDecl) {
// rawValue param to init(rawValue:)
auto *rawValueDecl = new (C) ParamDecl(
VarDecl::Specifier::Default, SourceLoc(), SourceLoc(), C.Id_rawValue,
SourceLoc(), C.Id_rawValue, valueParam->getType(), parentDC);
SourceLoc(), C.Id_rawValue, parentDC);
rawValueDecl->setInterfaceType(C.getIntDecl()->getDeclaredType());
rawValueDecl->setImplicit();
auto *paramList = ParameterList::createWithoutLoc(rawValueDecl);
@@ -117,7 +117,7 @@ static ValueDecl *deriveInitDecl(DerivedConformance &derived, Type paramType,
// rawValue
auto *rawDecl =
new (C) ParamDecl(VarDecl::Specifier::Default, SourceLoc(), SourceLoc(),
paramName, SourceLoc(), paramName, paramType, parentDC);
paramName, SourceLoc(), paramName, parentDC);
rawDecl->setInterfaceType(paramType);
rawDecl->setImplicit();