@@ -788,20 +788,23 @@ evaluate::StructureConstructor RuntimeTableBuilder::DescribeComponent(
788
788
const DerivedTypeSpec &spec{dyType.GetDerivedTypeSpec ()};
789
789
Scope *derivedScope{const_cast <Scope *>(
790
790
spec.scope () ? spec.scope () : spec.typeSymbol ().scope ())};
791
- const Symbol *derivedDescription{DescribeType (DEREF (derivedScope))};
792
- AddValue (values, componentSchema_, " derived" s,
793
- evaluate::AsGenericExpr (evaluate::Expr<evaluate::SomeDerived>{
794
- evaluate::Designator<evaluate::SomeDerived>{
795
- DEREF (derivedDescription)}}));
796
- // Package values of LEN parameters, if any
797
- if (const SymbolVector * specParams{GetTypeParameters (spec.typeSymbol ())}) {
798
- for (SymbolRef ref : *specParams) {
799
- const auto &tpd{ref->get <TypeParamDetails>()};
800
- if (tpd.attr () == common::TypeParamAttr::Len) {
801
- if (const ParamValue * paramValue{spec.FindParameter (ref->name ())}) {
802
- lenParams.emplace_back (GetValue (*paramValue, parameters));
803
- } else {
804
- lenParams.emplace_back (GetValue (tpd.init (), parameters));
791
+ if (const Symbol * derivedDescription{DescribeType (DEREF (derivedScope))}) {
792
+ AddValue (values, componentSchema_, " derived" s,
793
+ evaluate::AsGenericExpr (evaluate::Expr<evaluate::SomeDerived>{
794
+ evaluate::Designator<evaluate::SomeDerived>{
795
+ DEREF (derivedDescription)}}));
796
+ // Package values of LEN parameters, if any
797
+ if (const SymbolVector *
798
+ specParams{GetTypeParameters (spec.typeSymbol ())}) {
799
+ for (SymbolRef ref : *specParams) {
800
+ const auto &tpd{ref->get <TypeParamDetails>()};
801
+ if (tpd.attr () == common::TypeParamAttr::Len) {
802
+ if (const ParamValue *
803
+ paramValue{spec.FindParameter (ref->name ())}) {
804
+ lenParams.emplace_back (GetValue (*paramValue, parameters));
805
+ } else {
806
+ lenParams.emplace_back (GetValue (tpd.init (), parameters));
807
+ }
805
808
}
806
809
}
807
810
}
0 commit comments