mirror of
				https://github.com/mgechev/revive.git
				synced 2025-10-30 23:37:49 +02:00 
			
		
		
		
	feature: detect useless options in spanner struct tag (#1483)
This commit is contained in:
		| @@ -562,13 +562,18 @@ func checkYAMLTag(checkCtx *checkContext, tag *structtag.Tag, _ ast.Expr) (messa | ||||
|  | ||||
| func checkSpannerTag(checkCtx *checkContext, tag *structtag.Tag, _ ast.Expr) (message string, succeeded bool) { | ||||
| 	if tag.Name == "-" { | ||||
| 		if len(tag.Options) > 0 { | ||||
| 			return fmt.Sprintf("useless option(s) %s for ignored field", strings.Join(tag.Options, ",")), false | ||||
| 		} | ||||
| 		return "", true | ||||
| 	} | ||||
|  | ||||
| 	for _, opt := range tag.Options { | ||||
| 		if !checkCtx.isUserDefined(keySpanner, opt) { | ||||
| 			return fmt.Sprintf(msgUnknownOption, opt), false | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return "", true | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										7
									
								
								testdata/struct_tag_user_options.go
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								testdata/struct_tag_user_options.go
									
									
									
									
										vendored
									
									
								
							| @@ -48,6 +48,7 @@ type TomlUser struct { | ||||
| } | ||||
|  | ||||
| type SpannerUserOptions struct { | ||||
| 	ID        int    `spanner:"user_id,mySpannerOption"` | ||||
| 	Name      string `spanner:"full_name,unknownOption"` // MATCH /unknown option "unknownOption" in spanner tag/ | ||||
| } | ||||
| 	ID   int    `spanner:"user_id,mySpannerOption"` | ||||
| 	A    int    `spanner:"-,mySpannerOption"`       // MATCH /useless option(s) mySpannerOption for ignored field in spanner tag/ | ||||
| 	Name string `spanner:"full_name,unknownOption"` // MATCH /unknown option "unknownOption" in spanner tag/ | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user