[FIR] Check the presence of delegated constructor call via stubs

After `4b8b7aaa` external classes' secondary
constructors should not have a delegated call, so we
don't create a call if there's no explicit call.
But we need to check if there is.

The failing tests were muted in
`8fcf91d8`, and are now unmuted
back. Those are the ones in the
`testData/rawBuilder/declarations`
folder. These tests fail because they supply
PSI stubs for the secondary constructors,
so arbitrary operations (like reading .text of
the delegated constructor call) are not allowed
for them. This commit modifies secondary
constructor stubs to include the
required information.

^KT-65268 Fixed


Merge-request: KT-MR-13982
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
This commit is contained in:
Nikolay Lunyak
2024-02-02 08:15:54 +00:00
committed by Space Team
parent 77dba281a3
commit 9688865953
103 changed files with 253 additions and 270 deletions
@@ -6,7 +6,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[public final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TOuter]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=NestedClasses]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=NestedClasses]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -29,7 +29,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[private final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=Nested]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=Nested]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -56,7 +56,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[public final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TNN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=NN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=NN]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -86,7 +86,7 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION[referencedName=TN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=NI]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=NI]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -113,7 +113,7 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION[referencedName=TOuter]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=Inner]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=Inner]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -133,7 +133,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[inner private final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TII]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=II]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=II]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -6,7 +6,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[public final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TOuter]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=NestedClasses]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=NestedClasses]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -32,7 +32,7 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION[referencedName=TOuter]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=Inner]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=Inner]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -52,7 +52,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[inner private final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TII]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=II]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=II]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -108,7 +108,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[private final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=Nested]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=Nested]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -138,7 +138,7 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION[referencedName=TN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=NI]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=NI]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY
@@ -162,7 +162,7 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST[public final]
TYPE_PARAMETER_LIST
TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TNN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExtension=false, isTopLevel=false, name=NN]
PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, name=NN]
MODIFIER_LIST[public]
VALUE_PARAMETER_LIST
CLASS_BODY