mirror of
				https://github.com/taigrr/yq
				synced 2025-01-18 04:53:17 -08:00 
			
		
		
		
	Dont use pointer for recursive prefs (avoid nil)
This commit is contained in:
		
							parent
							
								
									8980846632
								
							
						
					
					
						commit
						0318c80d33
					
				| @ -221,10 +221,10 @@ func initLexer() (*lex.Lexer, error) { | |||||||
| 	lexer.Add([]byte(`\)`), literalToken(closeBracket, true)) | 	lexer.Add([]byte(`\)`), literalToken(closeBracket, true)) | ||||||
| 
 | 
 | ||||||
| 	lexer.Add([]byte(`\.\[`), literalToken(traverseArrayCollect, false)) | 	lexer.Add([]byte(`\.\[`), literalToken(traverseArrayCollect, false)) | ||||||
| 	lexer.Add([]byte(`\.\.`), opTokenWithPrefs(recursiveDescentOpType, nil, &recursiveDescentPreferences{RecurseArray: true, | 	lexer.Add([]byte(`\.\.`), opTokenWithPrefs(recursiveDescentOpType, nil, recursiveDescentPreferences{RecurseArray: true, | ||||||
| 		TraversePreferences: traversePreferences{DontFollowAlias: true, IncludeMapKeys: false}})) | 		TraversePreferences: traversePreferences{DontFollowAlias: true, IncludeMapKeys: false}})) | ||||||
| 
 | 
 | ||||||
| 	lexer.Add([]byte(`\.\.\.`), opTokenWithPrefs(recursiveDescentOpType, nil, &recursiveDescentPreferences{RecurseArray: true, | 	lexer.Add([]byte(`\.\.\.`), opTokenWithPrefs(recursiveDescentOpType, nil, recursiveDescentPreferences{RecurseArray: true, | ||||||
| 		TraversePreferences: traversePreferences{DontFollowAlias: true, IncludeMapKeys: true}})) | 		TraversePreferences: traversePreferences{DontFollowAlias: true, IncludeMapKeys: true}})) | ||||||
| 
 | 
 | ||||||
| 	lexer.Add([]byte(`,`), opToken(unionOpType)) | 	lexer.Add([]byte(`,`), opToken(unionOpType)) | ||||||
|  | |||||||
| @ -80,7 +80,7 @@ func mergeObjects(d *dataTreeNavigator, lhs *CandidateNode, rhs *CandidateNode, | |||||||
| 	var results = list.New() | 	var results = list.New() | ||||||
| 
 | 
 | ||||||
| 	// shouldn't recurse arrays if appending | 	// shouldn't recurse arrays if appending | ||||||
| 	prefs := &recursiveDescentPreferences{RecurseArray: !shouldAppendArrays, | 	prefs := recursiveDescentPreferences{RecurseArray: !shouldAppendArrays, | ||||||
| 		TraversePreferences: traversePreferences{DontFollowAlias: true}} | 		TraversePreferences: traversePreferences{DontFollowAlias: true}} | ||||||
| 	err := recursiveDecent(d, results, nodeToMap(rhs), prefs) | 	err := recursiveDecent(d, results, nodeToMap(rhs), prefs) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | |||||||
| @ -14,7 +14,7 @@ type recursiveDescentPreferences struct { | |||||||
| func recursiveDescentOperator(d *dataTreeNavigator, matchMap *list.List, expressionNode *ExpressionNode) (*list.List, error) { | func recursiveDescentOperator(d *dataTreeNavigator, matchMap *list.List, expressionNode *ExpressionNode) (*list.List, error) { | ||||||
| 	var results = list.New() | 	var results = list.New() | ||||||
| 
 | 
 | ||||||
| 	preferences := expressionNode.Operation.Preferences.(*recursiveDescentPreferences) | 	preferences := expressionNode.Operation.Preferences.(recursiveDescentPreferences) | ||||||
| 	err := recursiveDecent(d, results, matchMap, preferences) | 	err := recursiveDecent(d, results, matchMap, preferences) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| @ -23,7 +23,7 @@ func recursiveDescentOperator(d *dataTreeNavigator, matchMap *list.List, express | |||||||
| 	return results, nil | 	return results, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func recursiveDecent(d *dataTreeNavigator, results *list.List, matchMap *list.List, preferences *recursiveDescentPreferences) error { | func recursiveDecent(d *dataTreeNavigator, results *list.List, matchMap *list.List, preferences recursiveDescentPreferences) error { | ||||||
| 	for el := matchMap.Front(); el != nil; el = el.Next() { | 	for el := matchMap.Front(); el != nil; el = el.Next() { | ||||||
| 		candidate := el.Value.(*CandidateNode) | 		candidate := el.Value.(*CandidateNode) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user