Changeset cd6a6ff
- Timestamp:
- Dec 3, 2020, 10:44:40 AM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 1db306a
- Parents:
- b37515b
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Print.cpp
rb37515b rcd6a6ff 205 205 206 206 void preprint( const ast::NamedTypeDecl * node ) { 207 if ( ! node->name.empty() ) os << node->name << ": "; 207 if ( ! node->name.empty() ) { 208 if( deterministic_output && isUnboundType(node->name) ) os << "[unbound]:"; 209 else os << node->name << ": "; 210 } 208 211 209 212 if ( ! short_mode && node->linkage != Linkage::Cforall ) { … … 240 243 241 244 if ( node->result ) { 242 if (!deterministic_output) { 243 os << endl << indent << "... with resolved type:" << endl; 244 ++indent; 245 os << indent; 246 node->result->accept( *this ); 247 --indent; 248 } 245 os << endl << indent << "... with resolved type:" << endl; 246 ++indent; 247 os << indent; 248 node->result->accept( *this ); 249 --indent; 249 250 } 250 251 … … 1382 1383 virtual const ast::Type * visit( const ast::TypeInstType * node ) override final { 1383 1384 preprint( node ); 1384 os << "instance of type " << node->name 1385 const auto & _name = deterministic_output && isUnboundType(node) ? "[unbound]" : node->name; 1386 os << "instance of type " << _name 1385 1387 << " (" << (node->kind == ast::TypeDecl::Ftype ? "" : "not ") << "function type)"; 1386 1388 print( node->params ); -
src/AST/Type.cpp
rb37515b rcd6a6ff 133 133 134 134 BaseInstType::BaseInstType( const BaseInstType & o ) 135 : ParameterizedType( o.qualifiers, copy( o.attributes ) ), params(), name( o.name ), 135 : ParameterizedType( o.qualifiers, copy( o.attributes ) ), params(), name( o.name ), 136 136 hoistType( o.hoistType ) { 137 137 Pass< ForallSubstitutor > sub; … … 222 222 // TODO: once TypeInstType representation is updated, it should properly check 223 223 // if the context id is filled. this is a temporary hack for now 224 if (std::count(typeInst->name.begin(), typeInst->name.end(), '_') >= 3) { 225 return true; 226 } 224 return isUnboundType(typeInst->name); 225 } 226 return false; 227 } 228 229 bool isUnboundType(const std::string & tname) { 230 // xxx - look for a type name produced by renameTyVars. 231 232 // TODO: once TypeInstType representation is updated, it should properly check 233 // if the context id is filled. this is a temporary hack for now 234 if (std::count(tname.begin(), tname.end(), '_') >= 3) { 235 return true; 227 236 } 228 237 return false; -
src/AST/Type.hpp
rb37515b rcd6a6ff 536 536 537 537 bool isUnboundType(const Type * type); 538 bool isUnboundType(const std::string & tname); 538 539 539 540 } -
src/AST/TypeEnvironment.cpp
rb37515b rcd6a6ff 34 34 #include "ResolvExpr/Unify.h" // for unifyInexact 35 35 #include "Tuples/Tuples.h" // for isTtype 36 #include "CompilationState.h" 36 37 37 38 using ResolvExpr::WidenMode; … … 56 57 57 58 void print( std::ostream & out, const EqvClass & clz, Indenter indent ) { 58 out << "( "; 59 std::copy( clz.vars.begin(), clz.vars.end(), std::ostream_iterator< std::string >( out, " " ) ); 59 out << "("; 60 bool first = true; 61 for(const auto & var : clz.vars) { 62 if(first) first = false; 63 else out << " "; 64 if( deterministic_output && isUnboundType(var) ) out << "[unbound]"; 65 else out << var; 66 } 60 67 out << ")"; 61 68 -
src/ResolvExpr/TypeEnvironment.cc
rb37515b rcd6a6ff 107 107 108 108 void EqvClass::print( std::ostream &os, Indenter indent ) const { 109 if( !deterministic_output ) { 110 os << "( "; 111 std::copy( vars.begin(), vars.end(), std::ostream_iterator< std::string >( os, " " ) ); 112 os << ")"; 113 } 109 os << "("; 110 bool first = true; 111 for(const auto & var : vars) { 112 if(first) first = false; 113 else os << " "; 114 if( deterministic_output && isUnboundType(var) ) os << "[unbound]"; 115 else os << var; 116 } 117 os << ")"; 114 118 if ( type ) { 115 119 os << " -> "; -
src/SynTree/Expression.cc
rb37515b rcd6a6ff 72 72 73 73 if ( result ) { 74 if (!deterministic_output) { 75 os << std::endl << indent << "with resolved type:" << std::endl; 76 os << (indent+1); 77 result->print( os, indent+1 ); 78 } 74 os << std::endl << indent << "with resolved type:" << std::endl; 75 os << (indent+1); 76 result->print( os, indent+1 ); 79 77 } 80 78 -
src/SynTree/NamedTypeDecl.cc
rb37515b rcd6a6ff 22 22 #include "LinkageSpec.h" // for Spec, Cforall, linkageName 23 23 #include "Type.h" // for Type, Type::StorageClasses 24 #include "CompilationState.h" 24 25 25 26 NamedTypeDecl::NamedTypeDecl( const std::string &name, Type::StorageClasses scs, Type *base ) … … 41 42 using namespace std; 42 43 43 if ( name != "" ) os << name << ": "; 44 if ( ! name.empty() ) { 45 if( deterministic_output && isUnboundType(name) ) os << "[unbound]:"; 46 else os << name << ": "; 47 } 44 48 45 49 if ( linkage != LinkageSpec::Cforall ) { -
src/SynTree/ReferenceToType.cc
rb37515b rcd6a6ff 24 24 #include "Type.h" // for TypeInstType, StructInstType, UnionInstType 25 25 #include "TypeSubstitution.h" // for TypeSubstitution 26 #include "CompilationState.h" 26 27 27 28 class Attribute; … … 205 206 206 207 Type::print( os, indent ); 207 os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " function type)"; 208 os << "instance of " << typeString() << " "; 209 const auto & name_ = get_name(); 210 if( deterministic_output && isUnboundType(name) ) os << "[unbound]"; 211 else os << name; 212 os << " (" << ( isFtype ? "" : "not" ) << " function type)"; 208 213 if ( ! parameters.empty() ) { 209 214 os << endl << indent << "... with parameters" << endl; -
src/SynTree/Type.cc
rb37515b rcd6a6ff 156 156 const Type::Qualifiers noQualifiers; 157 157 158 bool isUnboundType(const Type * type) { 159 if (auto typeInst = dynamic_cast<const TypeInstType *>(type)) { 160 // xxx - look for a type name produced by renameTyVars. 161 162 // TODO: once TypeInstType representation is updated, it should properly check 163 // if the context id is filled. this is a temporary hack for now 164 return isUnboundType(typeInst->name); 165 } 166 return false; 167 } 168 169 bool isUnboundType(const std::string & tname) { 170 // xxx - look for a type name produced by renameTyVars. 171 172 // TODO: once TypeInstType representation is updated, it should properly check 173 // if the context id is filled. this is a temporary hack for now 174 if (std::count(tname.begin(), tname.end(), '_') >= 3) { 175 return true; 176 } 177 return false; 178 } 179 158 180 // Local Variables: // 159 181 // tab-width: 4 // -
src/SynTree/Type.h
rb37515b rcd6a6ff 733 733 }; 734 734 735 736 bool isUnboundType(const Type * type); 737 bool isUnboundType(const std::string & tname); 738 735 739 // Local Variables: // 736 740 // tab-width: 4 // -
tests/.expect/alloc-ERROR.nast.txt
rb37515b rcd6a6ff 16 16 Name: stp 17 17 18 ... with resolved type: 19 unsigned long int 18 20 19 21 … … 28 30 Name: stp 29 31 Constant Expression (10: signed int) 32 ... with resolved type: 33 signed int 30 34 31 35 -
tests/.expect/alloc-ERROR.oast.txt
rb37515b rcd6a6ff 16 16 Name: stp 17 17 18 with resolved type: 19 unsigned long int 18 20 19 21 … … 28 30 Name: stp 29 31 constant expression (10 10: signed int) 32 with resolved type: 33 signed int 30 34 31 35 -
tests/.expect/init1-ERROR.nast.txt
rb37515b rcd6a6ff 11 11 ... to: 12 12 reference to signed int 13 ... with resolved type: 14 reference to signed int 13 15 init1.cfa:107:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 16 Name: ?{} … … 16 18 Generated Cast of: 17 19 Variable Expression: _retval_f_py: pointer to signed int 20 ... with resolved type: 21 pointer to signed int 18 22 ... to: 23 reference to pointer to signed int 24 ... with resolved type: 19 25 reference to pointer to signed int 20 26 Name: px … … 24 30 ... to: 25 31 reference to float 32 ... with resolved type: 33 reference to float 26 34 init1.cfa:117:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 27 35 Name: ?{} … … 29 37 Generated Cast of: 30 38 Variable Expression: _retval_f_py2: pointer to float 39 ... with resolved type: 40 pointer to float 31 41 ... to: 42 reference to pointer to float 43 ... with resolved type: 32 44 reference to pointer to float 33 45 Name: cpx … … 37 49 ... to: 38 50 reference to instance of type T (not function type) 51 ... with resolved type: 52 reference to instance of type T (not function type) 39 53 init1.cfa:128:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 40 54 Name: ?{} … … 42 56 Generated Cast of: 43 57 Variable Expression: _retval_anycvt: pointer to instance of type T (not function type) 58 ... with resolved type: 59 pointer to instance of type T (not function type) 44 60 ... to: 61 reference to pointer to instance of type T (not function type) 62 ... with resolved type: 45 63 reference to pointer to instance of type T (not function type) 46 64 Name: s -
tests/.expect/init1-ERROR.oast.txt
rb37515b rcd6a6ff 1 1 error: No reasonable alternatives for expression Untyped Init Expression 2 Name: rx InitAlternative: reference to signed int 2 Name: cpx InitAlternative: pointer to float 3 error: No reasonable alternatives for expression Untyped Init Expression 4 Name: crx InitAlternative: reference to float 3 5 error: No reasonable alternatives for expression Untyped Init Expression 4 6 Name: px InitAlternative: pointer to signed int 5 7 error: No reasonable alternatives for expression Untyped Init Expression 6 Name: crx InitAlternative: reference to float 7 error: No reasonable alternatives for expression Untyped Init Expression 8 Name: cpx InitAlternative: pointer to float 8 Name: rx InitAlternative: reference to signed int 9 9 init1.cfa:104:1 error: No reasonable alternatives for expression Generated Cast of: 10 10 Name: rx 11 11 ... to: 12 reference to signed int 13 with resolved type: 12 14 reference to signed int 13 15 init1.cfa:107:1 error: No reasonable alternatives for expression Applying untyped: … … 16 18 Generated Cast of: 17 19 Variable Expression: _retval_f_py: pointer to signed int 20 with resolved type: 21 pointer to signed int 18 22 ... to: 23 reference to pointer to signed int 24 with resolved type: 19 25 reference to pointer to signed int 20 26 Name: px … … 24 30 ... to: 25 31 reference to float 32 with resolved type: 33 reference to float 26 34 init1.cfa:117:1 error: No reasonable alternatives for expression Applying untyped: 27 35 Name: ?{} … … 29 37 Generated Cast of: 30 38 Variable Expression: _retval_f_py2: pointer to float 39 with resolved type: 40 pointer to float 31 41 ... to: 42 reference to pointer to float 43 with resolved type: 32 44 reference to pointer to float 33 45 Name: cpx … … 37 49 ... to: 38 50 reference to instance of type T (not function type) 51 with resolved type: 52 reference to instance of type T (not function type) 39 53 init1.cfa:128:1 error: No reasonable alternatives for expression Applying untyped: 40 54 Name: ?{} … … 42 56 Generated Cast of: 43 57 Variable Expression: _retval_anycvt: pointer to instance of type T (not function type) 58 with resolved type: 59 pointer to instance of type T (not function type) 44 60 ... to: 61 reference to pointer to instance of type T (not function type) 62 with resolved type: 45 63 reference to pointer to instance of type T (not function type) 46 64 Name: s -
tests/errors/.expect/completeType.nast.x64.txt
rb37515b rcd6a6ff 6 6 Name: x 7 7 8 ... to: nothing Alternatives are: 8 ... to: nothing 9 ... with resolved type: 10 void Alternatives are: 9 11 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of: 10 12 Application of … … 17 19 reference to instance of type DT (not function type) 18 20 21 ... with resolved type: 22 pointer to forall 23 [unbound]:data type 24 function 25 ... with parameters 26 pointer to instance of type [unbound] (not function type) 27 ... returning 28 reference to instance of type [unbound] (not function type) 29 19 30 ... to arguments 20 31 Variable Expression: x: pointer to instance of struct B with body 32 ... with resolved type: 33 pointer to instance of struct B with body 21 34 35 ... with resolved type: 36 reference to instance of struct B with body 22 37 ... to: nothing 38 ... with resolved type: 39 void 23 40 (types: 24 41 void 25 42 ) 26 Environment:( _99_2_DT) -> instance of struct B with body (no widening)43 Environment:([unbound]) -> instance of struct B with body (no widening) 27 44 28 45 … … 37 54 reference to instance of type DT (not function type) 38 55 56 ... with resolved type: 57 pointer to forall 58 [unbound]:data type 59 function 60 ... with parameters 61 pointer to instance of type [unbound] (not function type) 62 ... returning 63 reference to instance of type [unbound] (not function type) 64 39 65 ... to arguments 40 66 Variable Expression: x: pointer to instance of struct A without body 67 ... with resolved type: 68 pointer to instance of struct A without body 41 69 70 ... with resolved type: 71 reference to instance of struct A without body 42 72 ... to: nothing 73 ... with resolved type: 74 void 43 75 (types: 44 76 void 45 77 ) 46 Environment:( _99_2_DT) -> instance of struct A without body (no widening)78 Environment:([unbound]) -> instance of struct A without body (no widening) 47 79 48 80 … … 112 144 ... returning nothing 113 145 146 ... with resolved type: 147 pointer to forall 148 [unbound]:sized data type 149 ... with assertions 150 ?=?: pointer to function 151 ... with parameters 152 reference to instance of type [unbound] (not function type) 153 instance of type [unbound] (not function type) 154 ... returning 155 instance of type [unbound] (not function type) 156 157 ?{}: pointer to function 158 ... with parameters 159 reference to instance of type [unbound] (not function type) 160 ... returning nothing 161 162 ?{}: pointer to function 163 ... with parameters 164 reference to instance of type [unbound] (not function type) 165 instance of type [unbound] (not function type) 166 ... returning nothing 167 168 ^?{}: pointer to function 169 ... with parameters 170 reference to instance of type [unbound] (not function type) 171 ... returning nothing 172 173 174 function 175 ... with parameters 176 pointer to instance of type [unbound] (not function type) 177 ... returning nothing 178 114 179 ... to arguments 115 180 Variable Expression: z: pointer to instance of type T (not function type) 181 ... with resolved type: 182 pointer to instance of type T (not function type) 116 183 with 1 pending inference slots 117 184 185 ... with resolved type: 186 void 118 187 (types: 119 188 void 120 189 ) 121 Environment:( _118_0_T) -> instance of type T (not function type) (no widening)190 Environment:([unbound]) -> instance of type T (not function type) (no widening) 122 191 123 192 Could not satisfy assertion: 124 193 ?=?: pointer to function 125 194 ... with parameters 126 reference to instance of type _118_0_T(not function type)127 instance of type _118_0_T(not function type)195 reference to instance of type [unbound] (not function type) 196 instance of type [unbound] (not function type) 128 197 ... returning 129 instance of type _118_0_T(not function type)198 instance of type [unbound] (not function type) 130 199 -
tests/errors/.expect/completeType.oast.x64.txt
rb37515b rcd6a6ff 6 6 Name: x 7 7 8 ... to: nothing Alternatives are: 8 ... to: nothing 9 with resolved type: 10 void Alternatives are: 9 11 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of: 10 12 Application of … … 20 22 21 23 24 with resolved type: 25 pointer to forall 26 [unbound]:data type 27 function 28 ... with parameters 29 intrinsic pointer to instance of type [unbound] (not function type) 30 ... returning 31 _retval__operator_deref: reference to instance of type [unbound] (not function type) 32 ... with attributes: 33 Attribute with name: unused 34 35 22 36 ... to arguments 23 37 Variable Expression: x: pointer to instance of struct A with body 0 24 38 with resolved type: 39 pointer to instance of struct A with body 0 40 41 with resolved type: 42 reference to instance of struct A with body 0 25 43 ... to: nothing 44 with resolved type: 45 void 26 46 (types: 27 47 void 28 48 ) 29 Environment: -> instance of struct A with body 0 (no widening)49 Environment:([unbound]) -> instance of struct A with body 0 (no widening) 30 50 31 51 … … 43 63 44 64 65 with resolved type: 66 pointer to forall 67 [unbound]:data type 68 function 69 ... with parameters 70 intrinsic pointer to instance of type [unbound] (not function type) 71 ... returning 72 _retval__operator_deref: reference to instance of type [unbound] (not function type) 73 ... with attributes: 74 Attribute with name: unused 75 76 45 77 ... to arguments 46 78 Variable Expression: x: pointer to instance of struct B with body 1 47 79 with resolved type: 80 pointer to instance of struct B with body 1 81 82 with resolved type: 83 reference to instance of struct B with body 1 48 84 ... to: nothing 85 with resolved type: 86 void 49 87 (types: 50 88 void 51 89 ) 52 Environment: -> instance of struct B with body 1 (no widening)90 Environment:([unbound]) -> instance of struct B with body 1 (no widening) 53 91 54 92 … … 121 159 ... returning nothing 122 160 161 with resolved type: 162 pointer to forall 163 [unbound]:sized data type 164 ... with assertions 165 ?=?: pointer to function 166 ... with parameters 167 reference to instance of type [unbound] (not function type) 168 instance of type [unbound] (not function type) 169 ... returning 170 _retval__operator_assign: instance of type [unbound] (not function type) 171 ... with attributes: 172 Attribute with name: unused 173 174 175 ?{}: pointer to function 176 ... with parameters 177 reference to instance of type [unbound] (not function type) 178 ... returning nothing 179 180 ?{}: pointer to function 181 ... with parameters 182 reference to instance of type [unbound] (not function type) 183 instance of type [unbound] (not function type) 184 ... returning nothing 185 186 ^?{}: pointer to function 187 ... with parameters 188 reference to instance of type [unbound] (not function type) 189 ... returning nothing 190 191 192 function 193 ... with parameters 194 pointer to instance of type [unbound] (not function type) 195 ... returning nothing 196 123 197 ... to arguments 124 198 Variable Expression: z: pointer to instance of type T (not function type) 125 199 with resolved type: 200 pointer to instance of type T (not function type) 201 202 with resolved type: 203 void 126 204 (types: 127 205 void 128 206 ) 129 Environment: -> instance of type T (not function type) (no widening)207 Environment:([unbound]) -> instance of type T (not function type) (no widening) 130 208 131 209 Could not satisfy assertion: 132 210 ?=?: pointer to function 133 211 ... with parameters 134 reference to instance of type _110_0_T(not function type)135 instance of type _110_0_T(not function type)212 reference to instance of type [unbound] (not function type) 213 instance of type [unbound] (not function type) 136 214 ... returning 137 _retval__operator_assign: instance of type _110_0_T(not function type)215 _retval__operator_assign: instance of type [unbound] (not function type) 138 216 ... with attributes: 139 217 Attribute with name: unused -
tests/raii/.expect/ctor-autogen-ERR1.nast.txt
rb37515b rcd6a6ff 7 7 signed int 8 8 ... returning nothing 9 10 ... with resolved type: 11 function 12 ... with parameters 13 reference to instance of struct Managed with body 14 signed int 15 ... returning nothing 9 16 10 17 ... deleted by: ?{}: function … … 23 30 signed int 24 31 32 ... with resolved type: 33 pointer to function 34 ... with parameters 35 reference to signed int 36 signed int 37 ... returning 38 signed int 39 25 40 ... to arguments 26 41 Generated Cast of: … … 30 45 Generated Cast of: 31 46 Variable Expression: m: reference to instance of struct Managed with body 47 ... with resolved type: 48 reference to instance of struct Managed with body 32 49 ... to: 33 50 instance of struct Managed with body 51 ... with resolved type: 52 instance of struct Managed with body 53 ... with resolved type: 54 signed int 34 55 ... to: 56 reference to signed int 57 ... with resolved type: 35 58 reference to signed int 36 59 Generated Cast of: 37 60 Constant Expression (0: zero_t) 61 ... with resolved type: 62 zero_t 38 63 ... to: 39 64 signed int 65 ... with resolved type: 66 signed int 40 67 68 ... with resolved type: 69 signed int 41 70 ... with environment: 42 71 Types: … … 47 76 Generated Cast of: 48 77 Variable Expression: x: instance of struct Managed with body 78 ... with resolved type: 79 instance of struct Managed with body 49 80 ... to: 50 81 reference to instance of struct Managed with body 82 ... with resolved type: 83 reference to instance of struct Managed with body 51 84 Constant Expression (123: signed int) 85 ... with resolved type: 86 signed int 52 87 88 ... with resolved type: 89 void 53 90 ... to: nothing 91 ... with resolved type: 92 void -
tests/raii/.expect/ctor-autogen-ERR1.oast.txt
rb37515b rcd6a6ff 7 7 x: signed int 8 8 ... returning nothing 9 10 with resolved type: 11 function 12 ... with parameters 13 _dst: reference to instance of struct Managed with body 1 14 x: signed int 15 ... returning nothing 9 16 10 17 ... deleted by: ?{}: function … … 26 33 27 34 35 with resolved type: 36 pointer to function 37 ... with parameters 38 intrinsic reference to signed int 39 intrinsic signed int 40 ... returning 41 _retval__operator_assign: signed int 42 ... with attributes: 43 Attribute with name: unused 44 45 28 46 ... to arguments 29 47 Generated Cast of: … … 33 51 Generated Cast of: 34 52 Variable Expression: m: reference to instance of struct Managed with body 1 53 with resolved type: 54 reference to instance of struct Managed with body 1 35 55 ... to: 36 56 instance of struct Managed with body 1 57 with resolved type: 58 instance of struct Managed with body 1 59 with resolved type: 60 signed int 37 61 ... to: 62 reference to signed int 63 with resolved type: 38 64 reference to signed int 39 65 Generated Cast of: 40 66 constant expression (0 0: zero_t) 67 with resolved type: 68 zero_t 41 69 ... to: 42 70 signed int 71 with resolved type: 72 signed int 43 73 74 with resolved type: 75 signed int 44 76 ... with environment: 45 77 Types: … … 50 82 Generated Cast of: 51 83 Variable Expression: x: instance of struct Managed with body 1 84 with resolved type: 85 instance of struct Managed with body 1 52 86 ... to: 53 87 reference to instance of struct Managed with body 1 88 with resolved type: 89 reference to instance of struct Managed with body 1 54 90 constant expression (123 123: signed int) 91 with resolved type: 92 signed int 55 93 94 with resolved type: 95 void 56 96 ... to: nothing 97 with resolved type: 98 void -
tests/warnings/.expect/self-assignment.nast.txt
rb37515b rcd6a6ff 1 1 warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of: 2 2 Variable Expression: j: signed int 3 ... with resolved type: 4 signed int 3 5 ... to: 6 reference to signed int 7 ... with resolved type: 4 8 reference to signed int 5 9 warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of: 6 10 Variable Expression: s: instance of struct S with body 11 ... with resolved type: 12 instance of struct S with body 7 13 ... to: 14 reference to instance of struct S with body 15 ... with resolved type: 8 16 reference to instance of struct S with body 9 17 warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of: … … 12 20 ... from aggregate: 13 21 Variable Expression: s: instance of struct S with body 22 ... with resolved type: 23 instance of struct S with body 24 ... with resolved type: 25 signed int 14 26 ... to: 27 reference to signed int 28 ... with resolved type: 15 29 reference to signed int 16 30 warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of: … … 22 36 ... from aggregate: 23 37 Variable Expression: t: instance of struct T with body 38 ... with resolved type: 39 instance of struct T with body 40 ... with resolved type: 41 instance of struct S with body 42 ... with resolved type: 43 signed int 24 44 ... to: 45 reference to signed int 46 ... with resolved type: 25 47 reference to signed int 26 48 warnings/self-assignment.cfa: In function '_X4mainFi___1': -
tests/warnings/.expect/self-assignment.oast.txt
rb37515b rcd6a6ff 1 1 warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of: 2 2 Variable Expression: j: signed int 3 with resolved type: 4 signed int 3 5 ... to: 6 reference to signed int 7 with resolved type: 4 8 reference to signed int 5 9 warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of: 6 10 Variable Expression: s: instance of struct S with body 1 11 with resolved type: 12 instance of struct S with body 1 7 13 ... to: 14 reference to instance of struct S with body 1 15 with resolved type: 8 16 reference to instance of struct S with body 1 9 17 warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of: … … 12 20 ... from aggregate: 13 21 Variable Expression: s: instance of struct S with body 1 22 with resolved type: 23 instance of struct S with body 1 24 with resolved type: 25 signed int 14 26 ... to: 27 reference to signed int 28 with resolved type: 15 29 reference to signed int 16 30 warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of: … … 22 36 ... from aggregate: 23 37 Variable Expression: t: instance of struct T with body 1 38 with resolved type: 39 instance of struct T with body 1 40 with resolved type: 41 instance of struct S with body 1 42 with resolved type: 43 signed int 24 44 ... to: 45 reference to signed int 46 with resolved type: 25 47 reference to signed int 26 48 warnings/self-assignment.cfa: In function '_X4mainFi___1':
Note: See TracChangeset
for help on using the changeset viewer.